TorbatYar/frontend/docs/hospitality-ui-specification.md
Mortezakoohjani 065c053c16 Add complete Torbat Food hospitality frontend connected to backend APIs.
Introduces modules/hospitality with 54 routes, BFF proxy, capability-gated nav, CRUD factory, and architecture validation docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 20:54:26 +03:30

3.0 KiB

Hospitality UI Specification — Torbat Food

Version: 1.0
Date: 2026-07-26
Product: Torbat Food (Hospitality Platform)

1. Product vision

Enterprise hospitality platform supporting cafe, restaurant, fast food, bakery, cloud kitchen, food court, catering, and related formats. UI adapts to enabled bundles; disabled modules are hidden from navigation.

2. Design principles

Principle Implementation
RTL first App shell, tables, forms use RTL layout
Mobile first Collapsible sidebar, touch-friendly targets (min 44px)
Low cognitive load Grouped nav, consistent page headers, breadcrumbs
Warm & welcoming Orange hospitality accent (--hospitality-accent)
Enterprise grade Real API data, permission/bundle gates, audit export
Performance TanStack Query caching, paginated lists, code-split routes

3. Layout system

  • Root layout: HospitalityRootLayout — AuthGuard + tenant gate
  • Hub (/hospitality/hub): Portal picker without sidebar
  • Management: HospitalityPortalShell — sidebar nav, mobile drawer, dark mode toggle

4. Page template (list/CRUD)

Every data page uses createHospitalityListPage:

  1. Breadcrumb
  2. PageHeader (title, description, actions)
  3. Search toolbar + pagination + CSV export
  4. DataTable with status chips
  5. Dialog create/edit, ConfirmDialog delete
  6. Loading / empty / error / bundle-disabled states

5. Dashboard (Executive)

Widgets wired to live APIs:

  • Venues count
  • Reservations count
  • Open POS tickets
  • Active kitchen tickets
  • Quick actions (reservations, kitchen, POS, analytics)

6. Bundle-gated modules

Bundle UI sections
digital_menu Menu, categories, items, modifiers, media
qr_menu / qr_ordering QR menu, ordering, cart, checkout
table_service / reservation Reservations, queue, guests
pos_lite / pos_pro POS, register, payments, discounts
kitchen Display, queue, preparation
*_connector Integration registration pages
analytics Reports, snapshots, inventory overview

7. Shared components

From @/components/ds: Button, Input, Dialog, Drawer, DataTable, PageHeader, StatCard, Badge, LoadingState, ErrorState, EmptyState, FormField, Select, ConfirmDialog.

Module-specific: HospitalityTablePage, HospitalityStatusChip, HospitalityBundleGate.

8. Accessibility

  • aria-label on search, icon buttons
  • Keyboard: hub → management navigation via standard links
  • Focus visible on interactive elements (DS defaults)

9. API contract

All pages consume hospitalityApi → BFF /api/hospitality → service :8009.

Headers: Authorization, X-Tenant-ID.

10. Supported venue formats

Backend VenueFormat enum surfaced in venue create (future): cafe, coffee_shop, restaurant, fast_food, bakery, pastry, ice_cream, juice_bar, cloud_kitchen, food_court, catering, take_away, other.