DineFlow Docs

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.
  • /checkout — Checkout
    • Files: app/checkout/page.tsx
    • Purpose: Review cart, capture details, create order.
  • /qr-codes — QR Codes
    • Files: app/qr-codes/page.tsx
    • Purpose: Generate/preview table QR images that deep-link with ?table=.

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.

Admin area

  • /admin/login — Admin login
    • Files: app/admin/login/*
    • Purpose: Authenticate admin users via Supabase.
  • /admin/settings — Admin settings
    • Files: app/admin/settings/*
    • Purpose: Adjust app-level settings.
  • /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.
  • /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

  • /analytics and /analytics-dashboard — Analytics
    • Files: app/analytics/page.tsx, app/analytics-dashboard/page.tsx
    • Purpose: Charts and summaries (lazy-loaded Recharts).

API Routes

  • /api/orders/*
    • Files: app/api/orders/*, lib/database.ts
    • Purpose: Create & fetch orders from the client UI.

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.ts and utils/supabase/middleware.ts
    • Guards /shop-portal/*, /admin/*, and further restricts /admin-dashboard/* to admins.