Pages & Modules Catalog
Every page, its purpose, and the key modules/components involved
This catalog links routes to responsibilities and the primary files to look at. It reflects the current codebase.
Customer-facing
/— Menu & Cart- Files:
app/page.tsx,components/navbar.tsx,components/loading-skeleton.tsx,lib/menu-data.ts - Purpose: Browse menu by category, add/remove items, sticky cart with total, proceed to checkout.
- Files:
/checkout— Checkout- Files:
app/checkout/page.tsx - Purpose: Review cart, capture details, create order.
- Files:
/qr-codes— QR Codes- Files:
app/qr-codes/page.tsx - Purpose: Generate/preview table QR images that deep-link with
?table=.
- Files:
Staff portal
/shop-portal— Staff shell- Files:
app/shop-portal/layout.tsx,app/shop-portal/page.tsx,app/shop-portal/login/* - Purpose: Staff tasks behind login; protected by middleware.
- Files:
Admin area
/admin/login— Admin login- Files:
app/admin/login/* - Purpose: Authenticate admin users via Supabase.
- Files:
/admin/settings— Admin settings- Files:
app/admin/settings/* - Purpose: Adjust app-level settings.
- Files:
/admin-dashboard— Dashboard overview- Files:
app/admin-dashboard/page.tsx,components/order-notification.tsx,components/ui/chart.tsx - Purpose: KPIs, charts, quick links, stock alerts, recent activity.
- Files:
/admin-dashboard/customers— Customers- Purpose: CRUD Customer records.
/admin-dashboard/products— Products & Inventory- Purpose: Create/Update products; stock and thresholds.
/admin-dashboard/invoices— Invoicing- Purpose: Create invoices; list and edit existing ones.
/admin-dashboard/payments— Payments- Purpose: Record payments; see history and balances.
/admin-dashboard/orders— Orders- Purpose: View and process live orders.
/admin-dashboard/reports— Reports- Purpose: Sales, revenue, top items, exports.
/admin-dashboard/users— Users & Roles- Purpose: Manage staff accounts and permissions.
/admin-dashboard/bill-templates— Bill templates- Purpose: Configure print templates (A4/A5/thermal).
/admin-dashboard/bill-settings— Billing settings- Purpose: Taxes, prefixes, branding.
/admin-dashboard/tables— Tables- Purpose: Table numbers, capacity, status.
/admin-dashboard/menu— Menu management- Purpose: CRUD menu items.
Analytics
/analyticsand/analytics-dashboard— Analytics- Files:
app/analytics/page.tsx,app/analytics-dashboard/page.tsx - Purpose: Charts and summaries (lazy-loaded Recharts).
- Files:
API Routes
/api/orders/*- Files:
app/api/orders/*,lib/database.ts - Purpose: Create & fetch orders from the client UI.
- Files:
Cross-cutting modules
lib/database.ts— Menu, Tables, Orders service layer + realtime subscriptions.lib/supabase-service.ts— Business suite (customers/products/invoices/payments/users/settings) data functions.lib/menu-sync.ts— Frontend menu ID to DB UUID mapping and syncing.utils/supabase/*— SSR/browser clients and middleware session refresh.components/bill-printer.tsx— Print-ready invoice component.
Middleware & protection
middleware.tsandutils/supabase/middleware.ts- Guards
/shop-portal/*,/admin/*, and further restricts/admin-dashboard/*to admins.
- Guards