Back to Portal
Live on App Ease

QueueEase
Smart Queue & Appointment System

A whitelabel queuing and appointment management platform with real-time WebSocket updates, multi-branch support, remote queue joining, and customizable branding.

Open QueueEase
Branches
Real-time
WebSocket Updates
4
User Roles
2
Queue Modes
Free
Forever
📡

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.

1

Browse Locations

Customer visits the public URL and sees all branches for the organization, with current waiting count and estimated wait time per branch.

2

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.

3

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.

4

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.

5

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".

6

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.

1

Arrive at Location

Customer walks in without any prior queueing. Goes to the counter or reception area.

2

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.

3

Wait & Watch

Customer waits in the location. Can watch the public queue display screen showing current position and who's being served.

4

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.

🛡️ Admin

Platform Administrator

  • Platform-wide dashboard & stats
  • View all organizations
  • Total users, entries & appointments
  • System-level management
👑 Owner

Organization Owner

  • Create & manage branches
  • Customize branding (logo, color)
  • Manage staff & assign to branches
  • Configure service queues
  • View organization-wide analytics
  • Manage appointments & settings
💼 Staff

Branch Staff

  • Scoped to assigned branch
  • Add walk-in customers to queue
  • Call next, check in & manage queue
  • Handle appointments at their branch
👤 User

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.

Laravel 12
React 18
Inertia.js
Tailwind CSS 3
Laravel Reverb
MySQL 8.4
Redis 7
Nginx 1.27
Docker
Kubernetes (K3s)
shadcn/ui
WebSocket
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