Real-Time Queue Updates
WebSocket-powered live updates via Laravel Reverb. Queue position, estimated wait time, and status changes push instantly to all connected clients — no page refresh needed.
Multi-Branch / Location
Each organization can have unlimited branches. Salons with multiple shops, fast food chains, clinic networks — each branch has its own queue, staff, and operating hours.
Remote Queue Joining
Customers join the queue from their phone before arriving. They get a ticket number and tracking URL, then check in when they arrive at the location.
Walk-In Check-In
Customers who arrive without using their phone get added by staff at the counter. Walk-ins are automatically marked as checked in and ready to serve.
Appointment Scheduling
Full appointment booking system with calendar view. Customers book per branch, select date/time/service. Staff manage confirmations, cancellations, and no-shows.
Whitelabel Branding
Each organization gets customizable logo and primary color. The entire UI adapts to the brand's color scheme. Public-facing queue pages show the org's branding.
Public Queue URLs
Shareable URLs per branch: /q/org-slug/branch-slug/. Customers see live queue status, join remotely, track their ticket, or book appointments.
Smart Wait Estimates
Configurable estimated time per person at org, branch, and service queue levels. The system calculates real-time estimated wait times based on queue position.
Ticket Tracking
Every queue entry gets a unique ticket number (prefixed by branch). Customers track their position, estimated ready time, and can self-check-in from the tracking page.
Browse Locations
Customer visits the public URL and sees all branches for the organization, with current waiting count and estimated wait time per branch.
Join the Queue
Selects a branch, fills in name, phone, and party size. Joins as a "remote" entry — not yet checked in. Gets a ticket number immediately.
Track Position
Uses the tracking URL to monitor their position in real-time. Sees how many people are ahead, estimated ready time, and live status updates via WebSocket.
Travel to Location
Times their arrival based on the estimated wait. The queue moves while they're on their way — arriving just in time for their turn.
Check In
Arrives at the location and checks in — either self-service via the tracking page or at the counter with staff. Status changes from "remote" to "checked in".
Get Served
Staff calls them when it's their turn. The system prefers checked-in customers. Served status updates in real-time on all connected screens.
Arrive at Location
Customer walks in without any prior queueing. Goes to the counter or reception area.
Staff Adds to Queue
Staff enters name, phone, and party size. Walk-ins are automatically marked as "checked in" since they're already physically present.
Wait & Watch
Customer waits in the location. Can watch the public queue display screen showing current position and who's being served.
Get Called
Staff clicks "Call Next" — the system picks the next checked-in customer. Walk-ins and checked-in remote customers are served in order.
Platform Administrator
- Platform-wide dashboard & stats
- View all organizations
- Total users, entries & appointments
- System-level management
Organization Owner
- Create & manage branches
- Customize branding (logo, color)
- Manage staff & assign to branches
- Configure service queues
- View organization-wide analytics
- Manage appointments & settings
Branch Staff
- Scoped to assigned branch
- Add walk-in customers to queue
- Call next, check in & manage queue
- Handle appointments at their branch
Registered Customer
- Join queues remotely
- Book appointments online
- Track queue position in real-time
- Self check-in on arrival
Salon Chain (like Great Clips)
A salon with 3+ locations. Each branch has its own queue for Haircuts, Color & Styling, and Quick Trims. Customers check the wait time at each branch and join the shortest queue from their phone before driving over.
Fast Food Restaurant
Multiple locations with Order Queue and Pickup Queue at each. During lunch rush, customers join the queue while in the parking lot. Walk-in customers get added by the cashier. Real-time display shows current orders being served.
Medical Clinic
A clinic with General Consultation and Lab Work queues. Patients book appointments online for specific time slots, or walk in and join the queue. Staff manages patient flow with check-in confirmation.
Bank Branch
Multiple service queues: Teller, Loans, Customer Service. Customers take a virtual ticket on their phone while parking. The display board in the lobby shows real-time queue positions. Staff calls the next checked-in customer.
Gaming Lounge
Branches in different malls. Customers queue remotely for their preferred gaming station. Walk-ins added at the counter. Real-time display shows estimated wait and current game sessions.
Auto Service Center
Oil change, tire rotation, and inspection queues per location. Book appointments for scheduled maintenance, or walk in for quick services. Track your vehicle's position in the service queue.
| Model | Key Fields | Relationships |
|---|---|---|
Organization |
name, slug, logo, primary_color, operating_hours | → branches, service_queues, users, queue_entries, appointments |
Branch |
name, slug, address, coordinates, estimated_time | → organization, service_queues, queue_entries, staff |
ServiceQueue |
name, branch_id, estimated_time, sort_order | → organization, branch, queue_entries |
QueueEntry |
ticket_number, status, join_type, checked_in, position | → organization, branch, service_queue, user |
Appointment |
scheduled_date/time, duration, status, branch_id | → organization, branch, service_queue, user |
User |
name, email, role (admin/owner/staff/user), branch_id | → organization, branch, queue_entries, appointments |
| Channel | Type | Payload |
|---|---|---|
queue.{orgId} |
Public | Queue entry updates org-wide (status, position, join_type, checked_in) |
queue.branch.{branchId} |
Public | Queue updates scoped to a specific branch — used by public display & staff dashboard |
queue.{orgId}.{queueId} |
Public | Updates for a specific service queue within the org |
appointments.{orgId} |
Private | Appointment status changes — only accessible to org members |