# tristantowijaya/lumora-dining architecture

> Architecture diagram of the GitHub repository tristantowijaya/lumora-dining, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tristantowijaya/lumora-dining
- Repository: https://github.com/tristantowijaya/lumora-dining

## Overview

Lumora is a Laravel restaurant storefront and operations dashboard. Customers browse restaurant information, reserve tables, place pickup or reservation-linked dine-in orders, and track bookings; staff and admins manage operations, with branch-scoped staff access. The graph preserves the documented storefront and admin capabilities, while sampled controllers support the reservation, checkout, tracking, and order-management links shown. Several admin and storefront subsystems are represented at their existing directories because their controller implementations were not sampled.

Main entry points: [`app/Models`](https://github.com/tristantowijaya/lumora-dining/tree/main/app/Models) (Restaurant records), [`app/Http/Controllers/CheckoutController.php`](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/CheckoutController.php) (Order checkout), [`app/Http/Controllers/ReservationController.php`](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/ReservationController.php) (Reservation booking), [`app/Http/Controllers`](https://github.com/tristantowijaya/lumora-dining/tree/main/app/Http/Controllers) (Restaurant browsing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Customer storefront"]
  node_storefront["Restaurant browsing"]
  node_storefront_views["Storefront pages"]
  node_customer_auth["Customer accounts"]
  node_account["Account history"]
end

subgraph group_booking["Booking and orders"]
  node_reservations["Reservation booking"]
  node_reservation_view["Reservation form<br/>[index.blade.php]"]
  node_checkout["Order checkout"]
  node_checkout_view["Checkout page<br/>[index.blade.php]"]
  node_tracking["Booking tracking"]
  node_tracking_view["Tracking pages"]
end

subgraph group_operations["Restaurant operations"]
  node_admin_auth["Staff authentication<br/>[AuthController.php]"]
  node_dashboard["Operations dashboard"]
  node_admin_reservations["Reservation management"]
  node_admin_orders["Order management"]
  node_admin_catalog["Catalog and venues"]
  node_admin_views["Admin dashboard pages"]
end

subgraph group_platform["Application data"]
  node_models["Restaurant records"]
  node_database[("SQLite database<br/>[database.php]")]
end

node_customer(("Customer or guest"))
node_staff(("Staff or admin"))

node_customer -->|"browses"| node_storefront
node_storefront -->|"renders pages"| node_storefront_views
node_storefront -->|"reads listings"| node_models
node_customer -->|"registers or logs in"| node_customer_auth
node_customer_auth -->|"creates customer"| node_models
node_customer -->|"books table"| node_reservations
node_reservations -->|"creates reservation"| node_models
node_reservations -->|"renders form"| node_reservation_view
node_customer -->|"places order"| node_checkout
node_checkout -->|"reads menu; saves order"| node_models
node_checkout -->|"looks up reservation"| node_reservations
node_checkout -->|"renders checkout"| node_checkout_view
node_customer -->|"looks up booking"| node_tracking
node_tracking -->|"reads bookings"| node_models
node_tracking -->|"renders details"| node_tracking_view
node_customer -->|"views history"| node_account
node_account -->|"reads account records"| node_models
node_staff -->|"signs in"| node_admin_auth
node_staff -->|"opens dashboard"| node_dashboard
node_staff -->|"manages reservations"| node_admin_reservations
node_staff -->|"manages orders"| node_admin_orders
node_staff -->|"manages restaurant data"| node_admin_catalog
node_dashboard -->|"reads statistics"| node_models
node_admin_reservations -->|"updates reservations"| node_models
node_admin_orders -->|"updates orders"| node_models
node_admin_catalog -->|"manages records"| node_models
node_dashboard -->|"renders dashboard"| node_admin_views
node_admin_reservations -->|"renders pages"| node_admin_views
node_admin_orders -->|"renders pages"| node_admin_views
node_models -->|"reads and writes"| node_database

click node_storefront "https://github.com/tristantowijaya/lumora-dining/tree/main/app/Http/Controllers"
click node_storefront_views "https://github.com/tristantowijaya/lumora-dining/tree/main/resources/views"
click node_customer_auth "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Auth/CustomerAuthController.php"
click node_account "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/AccountController.php"
click node_reservations "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/ReservationController.php"
click node_reservation_view "https://github.com/tristantowijaya/lumora-dining/blob/main/resources/views/reservation/index.blade.php"
click node_checkout "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/CheckoutController.php"
click node_checkout_view "https://github.com/tristantowijaya/lumora-dining/blob/main/resources/views/checkout/index.blade.php"
click node_tracking "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/TrackController.php"
click node_tracking_view "https://github.com/tristantowijaya/lumora-dining/tree/main/resources/views/track"
click node_admin_auth "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/AuthController.php"
click node_dashboard "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/DashboardController.php"
click node_admin_reservations "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/ReservationController.php"
click node_admin_orders "https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/OrderController.php"
click node_admin_catalog "https://github.com/tristantowijaya/lumora-dining/tree/main/app/Http/Controllers/Admin"
click node_admin_views "https://github.com/tristantowijaya/lumora-dining/tree/main/resources/views/admin"
click node_models "https://github.com/tristantowijaya/lumora-dining/tree/main/app/Models"
click node_database "https://github.com/tristantowijaya/lumora-dining/blob/main/config/database.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_storefront,node_storefront_views,node_customer_auth,node_account toneBlue
class node_reservations,node_reservation_view,node_checkout,node_checkout_view,node_tracking,node_tracking_view toneAmber
class node_admin_auth,node_dashboard,node_admin_reservations,node_admin_orders,node_admin_catalog,node_admin_views toneMint
class node_models,node_database toneRose
class node_customer,node_staff toneIndigo
```

## Components

### Customer storefront

- [Restaurant browsing](https://github.com/tristantowijaya/lumora-dining/tree/main/app/Http/Controllers): `app/Http/Controllers`
- [Storefront pages](https://github.com/tristantowijaya/lumora-dining/tree/main/resources/views): `resources/views`
- [Customer accounts](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Auth/CustomerAuthController.php): `app/Http/Controllers/Auth/CustomerAuthController.php`
- [Account history](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/AccountController.php): `app/Http/Controllers/AccountController.php`

### Booking and orders

- [Reservation booking](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/ReservationController.php): `app/Http/Controllers/ReservationController.php`
- [Reservation form](https://github.com/tristantowijaya/lumora-dining/blob/main/resources/views/reservation/index.blade.php): `resources/views/reservation/index.blade.php`
- [Order checkout](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/CheckoutController.php): `app/Http/Controllers/CheckoutController.php`
- [Checkout page](https://github.com/tristantowijaya/lumora-dining/blob/main/resources/views/checkout/index.blade.php): `resources/views/checkout/index.blade.php`
- [Booking tracking](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/TrackController.php): `app/Http/Controllers/TrackController.php`
- [Tracking pages](https://github.com/tristantowijaya/lumora-dining/tree/main/resources/views/track): `resources/views/track`

### Restaurant operations

- [Staff authentication](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/AuthController.php): `app/Http/Controllers/Admin/AuthController.php`
- [Operations dashboard](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/DashboardController.php): `app/Http/Controllers/Admin/DashboardController.php`
- [Reservation management](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/ReservationController.php): `app/Http/Controllers/Admin/ReservationController.php`
- [Order management](https://github.com/tristantowijaya/lumora-dining/blob/main/app/Http/Controllers/Admin/OrderController.php): `app/Http/Controllers/Admin/OrderController.php`
- [Catalog and venues](https://github.com/tristantowijaya/lumora-dining/tree/main/app/Http/Controllers/Admin): `app/Http/Controllers/Admin`
- [Admin dashboard pages](https://github.com/tristantowijaya/lumora-dining/tree/main/resources/views/admin): `resources/views/admin`

### Application data

- [Restaurant records](https://github.com/tristantowijaya/lumora-dining/tree/main/app/Models): `app/Models`
- [SQLite database](https://github.com/tristantowijaya/lumora-dining/blob/main/config/database.php): `config/database.php`

### Other components

- **Customer or guest**
- **Staff or admin**

## Connections

- Customer or guest → Restaurant browsing: browses
- Restaurant browsing → Storefront pages: renders pages
- Restaurant browsing → Restaurant records: reads listings
- Customer or guest → Customer accounts: registers or logs in
- Customer accounts → Restaurant records: creates customer
- Customer or guest → Reservation booking: books table
- Reservation booking → Restaurant records: creates reservation
- Reservation booking → Reservation form: renders form
- Customer or guest → Order checkout: places order
- Order checkout → Restaurant records: reads menu; saves order
- Order checkout → Reservation booking: looks up reservation
- Order checkout → Checkout page: renders checkout
- Customer or guest → Booking tracking: looks up booking
- Booking tracking → Restaurant records: reads bookings
- Booking tracking → Tracking pages: renders details
- Customer or guest → Account history: views history
- Account history → Restaurant records: reads account records
- Staff or admin → Staff authentication: signs in
- Staff or admin → Operations dashboard: opens dashboard
- Staff or admin → Reservation management: manages reservations
- Staff or admin → Order management: manages orders
- Staff or admin → Catalog and venues: manages restaurant data
- Operations dashboard → Restaurant records: reads statistics
- Reservation management → Restaurant records: updates reservations
- Order management → Restaurant records: updates orders
- Catalog and venues → Restaurant records: manages records
- Operations dashboard → Admin dashboard pages: renders dashboard
- Reservation management → Admin dashboard pages: renders pages
- Order management → Admin dashboard pages: renders pages
- Restaurant records → SQLite database: reads and writes
