Technical Guide
Developer-facing documentation for the Nova Print monorepo: how the five apps fit together, which Django apps own which domain, and where to look next for architecture, models, and order flows.
Monorepo map
| App | Path | Stack | Role |
|---|---|---|---|
| Backend API | backend-main/ | Django 4 + DRF + SimpleJWT | Single /api/ surface for POS, warehouse, ecommerce, customer links, designs, users, settings |
| Admin dashboard | frontend-admin-dashboard/ | React / Vite | Ops: products, stock, orders, workflows, ecommerce settings, reports |
| POS | frontend-pos/ | React / Vite | In-store terminal: catalog, orders, customer / catalog links |
| Storefront | frontend-ecommerce/ | Next.js | Customer shop, cart, COD / Razorpay checkout, accounts |
| Checkout chat | printbazar-checkout/ | React / Vite | Public customer-link / catalog-link UI (steps, chat, UPI) |
Agent and local setup conventions live in AGENTS.md. A static audit of payments, stock, and auth gaps is in report.md.
Backend Django apps (under backend-main/)
| App | Responsibility |
|---|---|
warehouse | Products, categories, warehouses, WarehouseStock, transfers |
pos | PointOfSale, POSOrder (+ items, workflow units, comments), SSE for orders |
ecommerce | Storefront settings, listings, customers, checkout, PendingRazorpayCheckout |
customerlink | CustomerLink, CatalogLink, public checkout APIs, comment SSE |
designcatalog | Design collections / designs used by POS catalog and ecommerce |
users | JWT obtain/refresh helpers and user-facing auth endpoints |
appsettings | Global app settings (including archive delays), SQL editor |
URL mount point: backend-main/config/urls.py — all DRF apps are included under /api/.
How to use this guide
- Start here for the monorepo map and reading order.
- Architecture overview — how Admin, POS, Ecommerce, and Checkout talk to Django
/api/, plus a system diagram. - Domain model — core entities and relationships (
Product,POSOrder,CustomerLink, etc.). - Order lifecycle —
order_source(posvsecommerce), statuses, payment sub-status, archive. - Customer link lifecycle — Empty → Submitted → Order Placed; catalog links; chat / SSE.
Continue through Auth & APIs, Payments & Stock, and Ops in the Technical sidebar for route tables, payment/stock behavior, and local/production setup.
Local defaults (quick reference)
- Backend:
python manage.py runserver→ typicallyhttp://localhost:8000(AGENTS.md). - Frontends point at
/apivia env, e.g. storefrontNEXT_PUBLIC_API_BASE_URLinfrontend-ecommerce/.env.development, checkoutVITE_API_BASE_URLinprintbazar-checkout/.env.development. - Auth: admin/staff JWT via
POST /api/token/; POS uses access-key headers afterPOST /api/pos-auth/(Verify exact header name inposviews if integrating a new client).