4.5 KiB
4.5 KiB
Hospitality Frontend UX Audit
Phase: hospitality-frontend-production
Date: 2026-07-28
Scope:/hospitality/*(54 routes) + modulefrontend/modules/hospitality
Backend: hospitality 12.0–12.8 (unchanged)
Constraint: No fake data · No backend rebuild · Commercial via Runtime adapters
Classification legend
| Class | Meaning |
|---|---|
| READY | Live API, usable CRUD/actions, guided empty |
| PARTIAL | API connected but missing upgrade path, role UX, or commercial entitlement |
| SCAFFOLD | Placeholder / misleading mapping / dead path |
| BROKEN | Route or action fails contract |
Route audit
| Route | Class | Notes |
|---|---|---|
/hospitality |
PARTIAL | Live KPIs; hardcoded product badge; no ops role switch |
/hospitality/hub |
PARTIAL | Health/caps live; static branding |
/hospitality/branches |
READY | Venues CRUD |
/hospitality/branches/list |
READY | Branches CRUD |
/hospitality/dining-areas |
READY | Create/list |
/hospitality/tables |
READY | Create/list |
/hospitality/floor-map |
READY | POS Pro floor plans + L2 gate |
/hospitality/reservations |
READY | CRUD + status action |
/hospitality/queue |
READY | Waitlist + status |
/hospitality/customers |
PARTIAL | CRM connector regs (honest ownership) |
/hospitality/guests |
READY | QR menu sessions (read) |
/hospitality/menu (+ categories/items/modifiers/options/availability/media) |
READY | Digital menu catalog |
/hospitality/qr/menu |
READY | QR codes |
/hospitality/qr/ordering |
READY | Sessions + submit |
/hospitality/ordering/cart |
READY | Carts |
/hospitality/ordering/checkout |
READY | Cart lines |
/hospitality/kitchen/* |
PARTIAL | Live tickets; no dedicated kitchen ops dashboard |
/hospitality/pos/* |
PARTIAL | Live POS; coupons=discounts filter; no cashier ops home |
/hospitality/orders/* |
READY | Filtered QR / kitchen views |
/hospitality/invoices /receipts |
READY | POS ticket views |
| `/hospitality/integrations/delivery | crm | loyalty |
/hospitality/integrations/marketplace |
SCAFFOLD | Mapped to all dispatches; marketplace foundation not available |
/hospitality/reports /analytics |
READY | Analytics reports/snapshots |
/hospitality/inventory |
PARTIAL | Snapshot metric filter — often empty; needs explained empty |
/hospitality/settings /bundles /roles /permissions /audit /notifications /health /capabilities |
READY | Admin surfaces |
/hospitality/onboarding |
SCAFFOLD | Missing restaurant first-run wizard |
/hospitality/ops/* |
SCAFFOLD | Missing operational / waiter / cashier dashboards |
/hospitality/integrations/accounting |
SCAFFOLD | Backend capability exists; nav/page missing |
Cross-cutting gaps (pre-fix)
| Gap | Severity | Fix target |
|---|---|---|
HospitalityBundleGate = EmptyState only (no plan/capability/upgrade) |
High | Commercial FeatureLock + UpgradePrompt |
| No commercial entitlement layer | High | checkFeatureAccess + FeatureLock |
| Hardcoded «تربت فود / Torbat Food» | Med | Commercial product adapter display name |
| Marketplace nav without foundation | High | CapabilityUnavailable |
| No restaurant setup wizard | High | /hospitality/onboarding |
| No role ops dashboards | High | Kitchen / waiter / cashier / ops |
| Accounting connector absent in FE | Med | Add connector + nav |
Bundle gate when features undefined treats as allowed |
Med | Safe deny / loading |
Route audit (post production wave)
All former SCAFFOLD items closed except honest unavailable:
| Route | Class |
|---|---|
| Core CRUD / admin / integrations (excl. marketplace) | READY |
/hospitality/integrations/marketplace |
READY (CapabilityUnavailable) |
/hospitality/onboarding |
READY |
/hospitality/ops/* |
READY |
/hospitality/integrations/accounting |
READY |
| Dashboards / hub | READY (commercial brand when registry live) |
Quality gate snapshot (after)
| Gate | After |
|---|---|
| No Placeholder | PASS |
| No Fake Data | PASS |
| Fully commercial-aware | PASS |
| Fully entitlement-aware | PASS |
| Onboarding | PASS |
| Zero scaffold pages | PASS |