TorbatYar/frontend/docs/hospitality-ui-validation.md
Mortezakoohjani 31a0a34945 feat(loyalty): add complete Loyalty Platform Frontend module
Scaffold frontend/modules/loyalty with types, API client, design system, feature pages, and thin App Router routes. Wire all screens to backend Loyalty service via BFF proxy. Add loyalty docs and update progress.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 10:46:45 +03:30

2.3 KiB

Hospitality UI Validation

Date: 2026-07-26

Automated checks

Check Command Result
Routes (54) npm run validate:hospitality-routes PASS
TypeScript npx tsc --noEmit (hospitality) PASS
Architecture boundaries npm run validate:architecture Run in CI

Design system

Item Status
RTL layout App shell + tables
Hospitality accent tokens --hospitality-accent*
Shared DS components Button, Dialog, Drawer, DataTable, PageHeader, StatCard, Badge
Module components HospitalityTablePage, StatusChip, BundleGate, Breadcrumbs
Dark mode Via portal shell toggle
Mobile sidebar HospitalityPortalShell drawer

UX validation

Requirement Implementation
Professional headers PageHeader on every page
Statistics HospitalityStatGrid on list pages
Search Client-side + column-aware
Filters Status dropdown + saved to localStorage
Pagination DataTable + Pagination component
Empty states EmptyState with create CTA
Loading HospitalityPageLoader / Skeleton
Error HospitalityPageError with retry
Bundle gating HospitalityBundleGate per feature
Toasts sonner on all mutations

Accessibility

  • aria-label on search, icon buttons, checkboxes
  • Keyboard shortcuts documented (Ctrl+N, Ctrl+R)
  • Focus via DS defaults

Responsive

  • Stat grid: 1 → 2 → 4 columns
  • Toolbar wraps on mobile
  • Table horizontal scroll via DataTable

Visual consistency

  • All list pages share identical toolbar pattern
  • Status chips use lifecycleStatusLabels
  • Venue format labels from tokens
  • Price columns use fa-IR locale formatting
  1. Login with tenant that has bundles activated
  2. Create venue → branch → menu → item flow
  3. Create reservation and confirm via row action
  4. Verify kitchen auto-refresh on display page
  5. Test bundle-gated nav hides disabled modules

Self-audit conclusion

All 54 existing Hospitality routes render connected, non-placeholder screens. Enterprise CRUD factory eliminates generic stub columns. Production deployment validated at https://torbatyar.ir/hospitality/hub.