Skip to content

Technical overview

This section is for engineers and operators integrating or deploying the system.

  • Orchestration: Turborepo — root package.json scripts call turbo run … for apps/* and packages/* (see turbo.json).
  • Workspaces: apps/backend, apps/admin-web, apps/vendor-web, apps/docs, packages/shared.
LayerLocationNotes
APIapps/backendNestJS, TypeORM, MySQL, Swagger
Admin UIapps/admin-webVite, React, React Router
Vendor UIapps/vendor-webVite, React, POS + dashboard
Shared UIpackages/sharedComponents and helpers
Docsapps/docsThis Starlight site (Astro + Starlight)
  • Interactive OpenAPI and Swagger UI ship with the backend. Default UI path: /docs (configurable via SWAGGER_PATH). REST routes use global prefix /api/v1 (Swagger UI and OpenAPI JSON are excluded from that prefix).
  • Set SWAGGER_ENABLED=false to disable Swagger (e.g. hardened production).