How ishh-g/queuelock works
QueueLock is a multi-package virtual queue for clinics and small businesses: customers join by QR code and nickname, follow a live ticket and wait estimate, while staff call customers across counters; a public audit log supports fairness checks. The Flutter app uses the generated Serverpod client to reach thin server endpoints, with queue and ledger services holding domain logic and PostgreSQL-backed state. The README and tree establish these product capabilities and broad package boundaries; sampled source does not include the Dart runtime implementation, so detailed call wiring is intentionally omitted.
Main entry points: queuelock_client.dart Generated client · queue_endpoint.dart Queue endpoints · queue_service.dart Queue service · migrations PostgreSQL
Components 20
Flutter application
- Flutter app
queuelock_flutter/lib/main.dart - Join queue
queuelock_flutter/lib/screens/join_screen.dart - Live ticket
queuelock_flutter/lib/screens/ticket_screen.dart - Staff dashboard
queuelock_flutter/lib/screens/staff_screen.dart - Queue dashboard
queuelock_flutter/lib/screens/dashboard_screen.dart - Public audit
queuelock_flutter/lib/screens/audit_screen.dart - Generated client
queuelock_client/lib/queuelock_client.dart
Server API
- Server entry
queuelock_server/lib/server.dart - Queue endpoints
queuelock_server/lib/src/endpoints/queue_endpoint.dart - Admin endpoints
queuelock_server/lib/src/endpoints/admin_endpoint.dart - Audit endpoint
queuelock_server/lib/src/endpoints/audit_endpoint.dart - Authentication
queuelock_server/lib/src/auth/email_idp_endpoint.dart
Queue domain
- Queue service
queuelock_server/lib/src/services/queue_service.dart - Wait estimator
queuelock_server/lib/src/services/estimator.dart - Ledger service
queuelock_server/lib/src/services/ledger_service.dart - Ticket tokens
queuelock_server/lib/src/services/ticket_tokens.dart - Timeout and sweep
queuelock_server/lib/src/future_calls
State and storage
- PostgreSQL
queuelock_server/migrations
Other components
- Customer
- Staff
Connections 22
- Customer → Join queue: joins via QR
- Join queue → Generated client: submits join
- Live ticket → Generated client: loads ticket
- Staff → Staff dashboard: manages queue
- Staff → Queue dashboard: monitors counters
- Staff dashboard → Generated client: sends actions
- Customer → Public audit: checks fairness
- Public audit → Generated client: requests audit
- Generated client → Queue endpoints: calls API
- Generated client → Admin endpoints: calls API
- Generated client → Audit endpoint: calls API
- Generated client → Authentication: authenticates
- Server entry → Queue endpoints: registers endpoints
- Queue endpoints → Queue service: delegates queue logic
- Admin endpoints → Queue service: delegates administration
- Audit endpoint → Ledger service: delegates audit
- Queue endpoints → Wait estimator: uses service history
- Queue endpoints → Ticket tokens: uses ticket tokens
- Queue service → PostgreSQL: reads and writes
- Ledger service → PostgreSQL: reads and writes
- Timeout and sweep → Queue service: handles expiry
- Timeout and sweep → PostgreSQL: sweeps expired rows