Smart Virtual Queue & Customer Flow Management Ecosystem
Eliminate physical lines with remote queuing, live ticket tracking, rolling-average wait estimations, staff counter terminals, and lobby displays.
Long physical queues at service counters (hospitals, banks, clinics, embassies, universities, and service centers) lead to overcrowding, customer fatigue, and inefficient counter utilization.
QueueLess is an enterprise-ready, cross-platform queue management system that virtualizes customer queues into real-time digital streams. Customers join queues remotely, monitor estimated wait times live on their devices, and arrive just in time for their appointmentβwhile staff and administrators manage counter workflows with real-time throughput analytics.
- Remote Queue Entry: Browse nearby branches, view live counter wait times, and join virtual queues before stepping out.
- Live Ticket Tracking: Real-time Firestore stream displaying ticket number (
A042), currently serving number (A035), ahead count (#6), and dynamic wait time (~18 mins). - Instant QR Check-in: Scan on-site QR codes using the built-in scanner (
mobile_scanner) to claim instant digital tickets. - Digital Pass & QR Code: Generate high-fidelity pass codes (
qr_flutter) for rapid verification at the counter. - Smart Estimation Algorithm: Rolling-average engine accounting for historical durations, staff count, and peak-hour velocity.
- Proactive Push Alerts: FCM notification triggers when a customer is 5 away, 3 away, or called to a specific counter.
- Queue History & Feedback: View past tickets, time spent, and submit 5-star branch ratings.
- Counter Dispatch Controls: One-tap
Call Next,Recall,Start Service,Complete, orSkip / Absent. - Timestamp Analytics: Auto-records
calledAt,serviceStartedAt, andcompletedAtto feed the wait-time estimation engine. - Counter Pausing: Suspend dispatching during breaks or counter transfers without disrupting the overarching queue order.
- Real-Time KPIs: Track total footfall, completion rates, cancellation percentages, and average service durations across all counters.
- Interactive Data Visualization: Peak volume and completion breakdown powered by
fl_chart. - Branch & Service Management: CRUD operations for branch networks, departments, prefix codes (
A-,C-,L-), and counter capacity. - Role-Based Access Control (RBAC): Secure privilege tiering between Customers, Staff Members, and Branch Administrators.
- Public Queue Board: Dedicated landscape kiosk mode displaying currently served tickets and assigned counter numbers in large, high-contrast typography for waiting room displays.
QueueLess is engineered following Feature-Driven Clean Architecture and reactive state management principles:
lib/
βββ core/
β βββ constants/ # Design tokens, color system, Firestore collection names
β βββ errors/ # Centralized domain Failure & Exception wrappers
β βββ localization/ # Multi-language support (English, Sinhala, Tamil)
β βββ routing/ # GoRouter configuration with role-based route guards
β βββ services/ # Mock & Live Firebase service providers
β βββ theme/ # Material 3 Light & Dark mode themes
β βββ utils/ # QueueEstimationService, DateFormatters
β
βββ features/
β βββ admin/ # Branch/Service management, Staff roster, Analytics dashboard
β βββ authentication/ # Dual-mode Auth (Firebase Auth + Mock Dev Provider)
β βββ customer/ # Home explore, Live queue tracker, Digital pass, History
β βββ organization/ # Organization data repository & branch models
β βββ queue/ # Real-time ticket lifecycle management & state
β βββ shared/ # Universal domain models (AppUser, Branch, QueueTicket)
β βββ staff/ # Counter dispatching terminal & queue controls
β
βββ main.dart # Application entry point & Riverpod Scope initialization
QueueLess computes dynamic wait times using an adaptive rolling-average formula:
Where:
-
Ahead in Queue: Number of tickets with
status == TicketStatus.waitingcreated prior to the user's ticket. -
Average Service Duration: Rolling average of the last
$N$ completed tickets for that specific service type. -
Active Staff Counters: Number of authenticated counters currently in
activestate.
| Category | Technology |
|---|---|
| Framework | Flutter (v3.44+) / Dart (v3.12+) |
| Design System | Material 3 Design with custom high-contrast dark/light tokens |
| State Management | flutter_riverpod (v3.4+) |
| Routing | go_router with strict Auth & Role guards |
| Backend & Database | Firebase Authentication, Cloud Firestore, Firebase Cloud Messaging |
| Cloud Functions | Node.js Serverless Atomic Transactions (functions/index.js) |
| Charts & Analytics | fl_chart |
| QR Code Engine | qr_flutter & mobile_scanner |
| Typography | google_fonts (Inter / Outfit) |
- Cloud Firestore Rules (
firestore.rules): Granular security rules enforcing role boundaries. Customers can only view and cancel their own tickets; only staff members can update ticket statuses toinProgressorcompleted. - Atomic Concurrency Handling (
functions/index.js): Server-side Firestore transactions guarantee ticket numbers (#A001,#A002) remain strictly sequential and collision-free even under peak simultaneous requests.
- Flutter SDK
^3.44.0or higher - Dart SDK
^3.12.0or higher - Git installed
git clone https://github.com/Kavi20021026/queueless.git
cd queuelessflutter pub getflutter test# Run on Web
flutter run -d chrome
# Run on Android / iOS
flutter run
# Run on Windows Desktop
flutter run -d windowsComprehensive unit tests validate the algorithmic wait-time estimation engine and repository layer:
flutter test test/core/queue_estimation_test.dart
flutter test test/core/queue_repository_test.dartDistributed under the MIT License. See LICENSE for complete details.
Kavindu Dissanayaka
Full-Stack & Mobile Software Engineer
- GitHub: @Kavi20021026
- Project Link: https://github.com/Kavi20021026/queueless
