Skip to main content

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​

AppPathStackRole
Backend APIbackend-main/Django 4 + DRF + SimpleJWTSingle /api/ surface for POS, warehouse, ecommerce, customer links, designs, users, settings
Admin dashboardfrontend-admin-dashboard/React / ViteOps: products, stock, orders, workflows, ecommerce settings, reports
POSfrontend-pos/React / ViteIn-store terminal: catalog, orders, customer / catalog links
Storefrontfrontend-ecommerce/Next.jsCustomer shop, cart, COD / Razorpay checkout, accounts
Checkout chatprintbazar-checkout/React / VitePublic 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/)​

AppResponsibility
warehouseProducts, categories, warehouses, WarehouseStock, transfers
posPointOfSale, POSOrder (+ items, workflow units, comments), SSE for orders
ecommerceStorefront settings, listings, customers, checkout, PendingRazorpayCheckout
customerlinkCustomerLink, CatalogLink, public checkout APIs, comment SSE
designcatalogDesign collections / designs used by POS catalog and ecommerce
usersJWT obtain/refresh helpers and user-facing auth endpoints
appsettingsGlobal 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​

  1. Start here for the monorepo map and reading order.
  2. Architecture overview — how Admin, POS, Ecommerce, and Checkout talk to Django /api/, plus a system diagram.
  3. Domain model — core entities and relationships (Product, POSOrder, CustomerLink, etc.).
  4. Order lifecycle — order_source (pos vs ecommerce), statuses, payment sub-status, archive.
  5. 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 → typically http://localhost:8000 (AGENTS.md).
  • Frontends point at /api via env, e.g. storefront NEXT_PUBLIC_API_BASE_URL in frontend-ecommerce/.env.development, checkout VITE_API_BASE_URL in printbazar-checkout/.env.development.
  • Auth: admin/staff JWT via POST /api/token/; POS uses access-key headers after POST /api/pos-auth/ (Verify exact header name in pos views if integrating a new client).