Digital queue management app. Business owners manage queues from a dashboard; customers join with a business code.
Live app: https://queuezero-mvp-build.vercel.app/
- Node.js 22+
- Docker Desktop
- Clerk account → https://dashboard.clerk.com
npm installcp .env.example .env.localSet your Clerk keys from the Clerk dashboard:
DATABASE_PROVIDER=local
DATABASE_URL=postgresql://postgres:postgres@localhost:5433/queuezero
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...Port 5433 avoids conflicts with a local Postgres install on Windows (which often uses 5432).
npm run db:docker:startnpm run db:setupOptional demo data (CITYCARE business):
npm run db:setup:seednpm run dev- Go to http://localhost:3000/sign-up
- Create an account
- Complete onboarding at
/dashboard/onboarding - Create a business
- Add services in the dashboard
Customer flow: http://localhost:3000/join
See docs/submission/README.md for:
- Architecture diagram (
docs/architecture.drawio) - Aurora DSQL design notes
- AWS screenshot checklist
- 3-minute demo script
Set QUEUEZERO_QR_SECRET in Vercel for signed QR check-in in production.
docker start queuezero-postgres
npm run devnpm install
npm run db:docker:start
npm run db:setup
npm run devdocker start queuezero-postgres
npm run db:setup
npm run dev| Command | What it does |
|---|---|
npm run dev |
Start the app |
npm run db:docker:start |
Create/recreate the Postgres container on port 5433 |
npm run db:setup |
Apply schema to the Docker database |
npm run db:setup:seed |
Apply schema + demo data |
npm run build |
Production build |
npm run typecheck |
TypeScript check |
password authentication failed for user "postgres"
Your app is hitting the wrong Postgres on port 5432. Use port 5433:
DATABASE_URL=postgresql://postgres:postgres@localhost:5433/queuezeroThen:
npm run db:docker:start
npm run db:setuprelation "businesses" does not exist
docker start queuezero-postgres
npm run db:setupVercel OIDC warnings on npm run dev
Ignored when DATABASE_PROVIDER=local in .env.local.
Production runs on Vercel with Aurora DSQL (configured in the Vercel dashboard). Local development uses Docker Postgres only — no AWS or OIDC setup needed.