Reviewed-on: #6 |
||
|---|---|---|
| .gitea | ||
| docs | ||
| prisma | ||
| scripts | ||
| src | ||
| test | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc.json | ||
| README.md | ||
| jest.config.cjs | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| prisma.config.ts | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
README.md
Mani Candles backend
Phase 1A provides the service foundation. Phase 1B adds staff account provisioning, authentication, sessions, recovery, configurable RBAC, and audit records. Phase 1C implements core commerce APIs.
Setup
Use Node 24 LTS and pnpm 11.19.0. Copy .env.example to .env and set a PostgreSQL connection URL. Never commit credentials.
pnpm install --frozen-lockfile
pnpm db:generate
pnpm db:deploy
pnpm check
pnpm build
pnpm start
Development: run pnpm dev to compile on changes and pnpm start:watch in a second terminal after the first compilation. HTTP endpoints: GET /api/v1/health/live and GET /api/v1/health/ready. Readiness returns 503 when the database query fails. Health responses deliberately omit infrastructure details.
Layout
src/config: validated configuration, injected once.src/database: Prisma connection lifecycle and database probes.src/health: controller and application service.prisma/migrations: ordered, committed SQL migrations.test: configuration, lifecycle, and HTTP tests.docs: delivery roadmap and engineering workflow.
Production must use a managed secret store, TLS termination, a restricted database account, backups, and the deployment migration command. Do not expose this foundation as a completed commerce platform.
Identity: see API contract and setup/release guide. Phase 1C adds catalog, private addresses and inventory. See commerce API, errors, migrations, security preparation and verification. Phase 1D adds versioned carts, coupons, atomic checkout and private order snapshots. See checkout API and pricing boundary. Payment remains disabled until tax, shipping and payment rules are finalized. Phase 1E provides a provider-independent blueprint and test matrix, configurable pricing snapshots and an operational outbox/API. No real gateway or message delivery is enabled. Phase 2A adds organization-scoped supplier and material master data. Purchase orders, receipts, QC and production remain later milestones.
Swagger UI
Open http://localhost:3000/api/docs in development to browse and test the API. See API explorer for authentication and configuration.