Quickstart
git clone <repo>
cd tee.PP
npm install
Local dev
npm run dev:api # Worker on :8787 (wrangler dev)
npm run dev:pos # :5173
npm run dev:kds # :5174
npm run dev:hq # :5175
npm run dev:customer # :5176
npm run dev:superadmin # :5177
Each frontend's vite.config.ts proxies /api to localhost:8787 in dev,
so no VITE_API_URL override is needed locally.
Database
Migrations live in apps/api/migrations/, applied in numeric order:
cd apps/api
npx wrangler d1 execute tee-db --local --file=migrations/0001_initial_schema.sql
# ...repeat for every migration file in order, or use the deploy script's loop
Against production, swap --local for --remote.
Test accounts
No demo credentials are shown on any login page (see the main README for the current seeded accounts and how to create more via HQ → Staff).
Tests
npm run test -w apps/api # Vitest — pure logic (pricing, promos, TOTP, ABA PayWay hash, ...)
npm run test:e2e -w apps/e2e # Playwright — runs against a live deployment