Skip to content

qtrcipher/queue-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Queue Management System

CI License

Queue Management System is open-source queue management for physical and virtual queues. It is built for self-hosted branches that need kiosk check-in, staff counter workflows, public displays, QR/web joining, and Arabic/English support.

Status

This repository is an early public MVP scaffold. It includes a working TypeScript monorepo, NestJS API, React/Vite web app, Prisma schema, Docker Compose services, seed data, and project governance files.

Development Quick Start

cp .env.example .env
pnpm install
pnpm db:generate
docker compose up -d postgres redis mailpit
pnpm db:push
pnpm db:seed
pnpm dev

Full Docker Quick Start

cp .env.example .env
docker compose up --build

The local Compose file explicitly sets QMS_AUTO_DB_SYNC=true, so the API container applies the Prisma schema and loads seed data on startup for development. Use docker compose ps to confirm api, web, postgres, and redis are healthy or running before testing browser flows. Replace development secrets in .env before any production deployment.

Useful web routes:

  • /kiosk: touch-first ticket creation
  • /staff: staff queue controls
  • /display: public waiting-room display
  • /admin: branch, service, and counter setup
  • /join/main: customer QR join flow for the seeded branch
  • /ticket/:id: customer ticket status, position, and ETA
  • /analytics/summary: protected operational analytics API with optional start, end, and branchId filters
  • /analytics/tickets.csv: protected ticket CSV export with the same filters

Seed admin:

  • Email: admin@example.com
  • Password: admin12345

Features

  • Multi-branch, multi-service, multi-counter queue model
  • Kiosk ticket creation, appointment scheduling, and QR/web join flow
  • QR ticket tracking with queue position and estimated wait time
  • Protected staff actions: counter selection, call next, recall, start, complete, no-show, requeue, cancel, transfer
  • Role-based access control for owners, admins, branch managers, agents, and display users
  • Admin creation and editing for services, counters, user roles, and appointments
  • Basic analytics for issued tickets, completion/no-show rates, wait time, service time, branch/date filtering, multi-branch dashboards, and CSV export
  • Configurable ticket retention and manual purge for old terminal tickets
  • Public display state and customer ticket tracking
  • Built-in email/password session auth with httpOnly cookies
  • WebSocket queue updates
  • Arabic/English UI with RTL/LTR direction switching
  • SMTP email provider plus mock, webhook, or disabled SMS/WhatsApp provider plugins
  • Audit and ticket event history foundation

Repository Layout

apps/api      NestJS API, Prisma schema, seed data
apps/web      React + Vite single-page app
packages/domain  Shared queue types and state helpers
packages/ui       Shared UI primitives
infra         Deployment, backup, restore, and operations notes
research      Product research references

Operational guides:

Community

QMS is maintained as an open-source project under Apache-2.0. Contributions use DCO signoff instead of a CLA. See CONTRIBUTING.md, GOVERNANCE.md, and ROADMAP.md.

License

Apache-2.0. See LICENSE.

About

Open-source queue management system for physical and virtual queues

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages