96 lines
4.5 KiB
Markdown
96 lines
4.5 KiB
Markdown
# Hospitality Frontend UX Audit
|
||
|
||
> **Phase:** hospitality-frontend-production
|
||
> **Date:** 2026-07-28
|
||
> **Scope:** `/hospitality/*` (54 routes) + module `frontend/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|communication|website` | READY | Connector registrations by kind |
|
||
| `/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** |
|
||
|
||
See [hospitality-final-report.md](hospitality-final-report.md).
|
||
|