Phase 12 — Front Desk Physical Replacement
A complete digital front desk system — visitor check-in kiosk, queue token management, digital display screen, and staff queue dashboard. Designed to replace the physical receptionist desk entirely.
What It Does
Visitors arriving at a business use a tablet kiosk to check in themselves. They choose their purpose (appointment, walk-in, query, delivery, complaint, other), enter their name and phone, and receive a token (T-001, T-002...). The digital display screen shows who is being served. Staff manage the queue from a dashboard. All without a human receptionist.
Key Routes
| URL | Auth? | Description |
|---|---|---|
GET /kiosk/{slug} | ❌ None | Full-screen kiosk check-in page (touch-friendly, no login required) |
POST /kiosk/{slug}/checkin | ❌ None | Submit visitor check-in |
GET /kiosk/{slug}/token/{id} | ❌ None | Token confirmation screen (shows T-001, position in queue, estimated wait) |
GET /display/{slug} | ❌ None | Digital display screen — dark TV mode, 8-second live polling |
GET /front-desk | ✅ Auth | Staff queue management dashboard |
POST /front-desk/call-next | ✅ Auth | Call the next visitor in queue |
POST /front-desk/visitors/{id}/serve | ✅ Auth | Mark specific visitor as being served |
POST /front-desk/visitors/{id}/skip | ✅ Auth | Skip a visitor |
POST /front-desk/visitors/{id}/done | ✅ Auth | Mark visitor as served/done |
POST /front-desk/visitors/{id}/left | ✅ Auth | Mark visitor as left queue without being served |
Key Files
| Type | Path |
|---|---|
| Controller | app/Http/Controllers/KioskController.php |
| Controller | app/Http/Controllers/DisplayController.php |
| Controller | app/Http/Controllers/FrontDeskController.php |
| Model | app/Models/Visitor.php |
| Table | visitors — tenant_id, token_number, name, phone, purpose, purpose_detail, status, check_in_at, served_at |
| View | resources/views/kiosk/checkin.blade.php |
| View | resources/views/kiosk/token.blade.php |
| View | resources/views/kiosk/display.blade.php |
| View | resources/views/front-desk/index.blade.php |
Visitor Purposes
| Purpose | Slug | Icon |
|---|---|---|
| Appointment | appointment | Calendar |
| Walk-in | walk_in | Person walking |
| Query / Enquiry | query | Question mark |
| Delivery | delivery | Package |
| Complaint | complaint | Warning |
| Other | other | Dots |
Queue Token System
Tokens auto-increment daily per tenant: T-001 on day 1, T-002, T-003... Reset to T-001 at midnight (based on check_in_at date). The token is shown to the visitor on a confirmation screen and on the digital display when they're called.
Visitor Statuses
- waiting — checked in, in queue
- serving — currently being served at the desk
- served — visit complete
- skipped — staff skipped this visitor
- left — visitor left without being served
Digital Display Screen
The display at /display/{slug} is designed for a TV or large monitor mounted in the waiting area. It shows:
- "Now Serving" — the token currently being served (large, prominent)
- Queue list — next 5 tokens waiting
- Business name and logo
- Current time
- Auto-refreshes every 8 seconds via JavaScript polling
What's Complete
- Visitor check-in system with name, phone, purpose selection
- Auto-incrementing daily token (T-001, T-002...)
- Kiosk mode: no auth, full-screen, touch-friendly 2-step flow with purpose cards
- Token confirmation screen: token number, queue position, estimated wait
- Digital display screen: dark TV mode, 8-second live polling, Now Serving + queue list
- Queue dashboard: call next, serve specific, skip, done, left actions
- 30-second auto-refresh on queue dashboard
- Today's stats: waiting, serving, served count, average wait time
- Staff "Up Next" panel showing next 3 visitors in queue
- Colour-coded statuses in queue dashboard
What's Deferred
- ID verification (scan/upload — needs camera/hardware)
- Form/document upload at check-in
- Payment kiosk support (link to wallet/billing)
- Smart AI routing (complaint → manager, delivery → store room)
- SMS notification to staff on new check-in
- Multi-counter support (Counter 1 serves A-series, Counter 2 serves B-series)
- Walk-in appointment booking from kiosk (link to scheduling Phase 3)