tl;drA complete waitlist system: customers take a ticket at the kiosk, watch the display board, and get seated directly into a table session — all without staff juggling radios or clipboards.
The queue system uses Gulu-style sequential ticket numbering (A001, A002, … A999, B001, …). Tickets reset daily. The workflow is: Waiting → Called → Seated → Completed.
- —Sequential ticket numbering with daily reset
- —Self-service kiosk for walk-ins
- —Public display board for lobby screens
tl;drTickets move through a clear lifecycle: Waiting → Called → Seated → Completed, with No Show and Cancelled as terminal states.
Ticket statuses
Each ticket progresses through these stages:
- —Waiting — customer is in the queue
- —Called — staff has called the ticket (SMS notification sent)
- —Seated — customer is assigned a table and a seating session is created
- —Completed / No Show / Cancelled — terminal states
tl;drStaff manage the queue from the admin dashboard, POS Queue tab, or mobile app with real-time stats and one-tap actions.
Staff can manage the queue from multiple surfaces:
- —Add customers manually (name, phone, party size, notes)
- —"Call Next" auto-calls the next waiting ticket
- —Stats cards: waiting, called, seated, no-show, cancelled, total today
tl;drA self-service tablet interface for walk-ins to join the queue without staff involvement.
The kiosk page is accessed via a device key URL. Customers enter their name, optional phone number, and party size. After submission, they see their ticket number and queue position. The screen auto-resets after 30 seconds.
Kiosk features
- —Self-service form: name, phone (optional), party size
- —Confirmation screen with ticket number and position
- —Auto-reset after 30 seconds for the next customer
tl;drA TV-facing display showing "Now Serving" ticket numbers and waiting count — designed for lobby screens.
The display board is optimized for large screens mounted in waiting areas:
- —Large ticket numbers for visibility across the room
- —5-second polling for instant updates
- —Dark theme support and auto-hide cursor for fullscreen mode
tl;drWhen a ticket is seated, a seating session is atomically created — linking the table, seats, and queue ticket together.
Atomic seating flow
When staff seats a called ticket, the system creates a seating session in one operation:
- —Seat selection with per-seat availability check
- —Session QR code generated for the seated party
- —Table auto-release when all sessions close