TorbatYar/docs/hospitality-frontend-audit.md
2026-07-28 20:39:10 +03:30

96 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hospitality Frontend UX Audit
> **Phase:** hospitality-frontend-production
> **Date:** 2026-07-28
> **Scope:** `/hospitality/*` (54 routes) + module `frontend/modules/hospitality`
> **Backend:** hospitality 12.012.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).