# ledziqo/zemy architecture

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

- Interactive diagram: https://gitdiagram.com/ledziqo/zemy
- Repository: https://github.com/ledziqo/zemy

## Overview

ZemTab is a Laravel service for restaurant QR menus, guest ordering and service requests, with restaurant operations and admin management. The main customer journey runs from scanning a table menu through cart submission to a stored order; restaurant staff then manage orders and requests. The README documents payment-ready records but no live gateway. Several subsystem links reflect documented capabilities and tree paths; sampled excerpts do not establish every controller-to-view or controller-to-model call, so uncertain wiring is omitted.

Main entry points: [`app/Models`](https://github.com/ledziqo/zemy/tree/main/app/Models) (Domain models), [`app/Http/Controllers/Restaurant`](https://github.com/ledziqo/zemy/tree/main/app/Http/Controllers/Restaurant) (Restaurant operations), [`app/Http/Controllers/MenuController.php`](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/MenuController.php) (QR menu), [`app/Http/Controllers/OrderController.php`](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/OrderController.php) (Order submission)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Guest experience"]
  node_public_pages["Landing and demo"]
  node_menu["QR menu<br/>[MenuController.php]"]
  node_menu_view["Menu presentation<br/>[show.blade.php]"]
  node_guest_visit["Guest visit tracking"]
  node_order_creation["Order submission"]
  node_service_requests["Waiter and bill requests"]
end

subgraph group_operations["Restaurant operations"]
  node_restaurant_ops["Restaurant operations"]
  node_dashboard["Dashboard and workboard"]
  node_menu_management["Menu management"]
  node_table_setup["Tables and QR setup"]
  node_payments["Payment records"]
end

subgraph group_admin["Platform administration"]
  node_demo_requests["Demo requests"]
  node_admin_ops["Admin management"]
end

subgraph group_core["Application core"]
  node_web_routes["Web routes<br/>[web.php]"]
  node_models["Domain models"]
  node_database[("Application database")]
  node_cache[("Menu and workboard caches")]
end

node_guest(("Guest"))
node_staff(("Restaurant staff"))
node_administrator(("Administrator"))

node_guest -->|"opens pages"| node_web_routes
node_web_routes -->|"dispatches"| node_public_pages
node_public_pages -->|"submits inquiry"| node_demo_requests
node_web_routes -->|"dispatches"| node_menu
node_menu -->|"renders menu"| node_menu_view
node_guest -->|"scans table URL"| node_menu
node_menu -->|"resolves visit"| node_guest_visit
node_order_creation -->|"resolves visit"| node_guest_visit
node_guest -->|"submits cart"| node_order_creation
node_order_creation -->|"creates order"| node_models
node_guest -->|"requests service"| node_service_requests
node_service_requests -->|"records request"| node_models
node_staff -->|"manages restaurant"| node_restaurant_ops
node_restaurant_ops -->|"opens dashboard"| node_dashboard
node_restaurant_ops -->|"maintains menu"| node_menu_management
node_restaurant_ops -->|"configures tables"| node_table_setup
node_dashboard -->|"queries operations"| node_models
node_table_setup -->|"invalidates menu cache"| node_cache
node_administrator -->|"manages platform"| node_admin_ops
node_admin_ops -->|"reviews payments"| node_payments
node_admin_ops -->|"manages records"| node_models
node_models -->|"reads and writes"| node_database

click node_web_routes "https://github.com/ledziqo/zemy/blob/main/routes/web.php"
click node_public_pages "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/PublicController.php"
click node_demo_requests "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Admin/DemoRequestController.php"
click node_menu "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/MenuController.php"
click node_menu_view "https://github.com/ledziqo/zemy/blob/main/resources/views/menu/show.blade.php"
click node_guest_visit "https://github.com/ledziqo/zemy/blob/main/app/Support/GuestVisitManager.php"
click node_order_creation "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/OrderController.php"
click node_service_requests "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/ServiceRequestController.php"
click node_restaurant_ops "https://github.com/ledziqo/zemy/tree/main/app/Http/Controllers/Restaurant"
click node_dashboard "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Restaurant/DashboardController.php"
click node_menu_management "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Restaurant/MenuItemController.php"
click node_table_setup "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Restaurant/TableController.php"
click node_admin_ops "https://github.com/ledziqo/zemy/tree/main/app/Http/Controllers/Admin"
click node_payments "https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Admin/PaymentController.php"
click node_models "https://github.com/ledziqo/zemy/tree/main/app/Models"
click node_cache "https://github.com/ledziqo/zemy/blob/main/app/Support/PublicMenuCache.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_public_pages,node_menu,node_menu_view,node_guest_visit,node_order_creation,node_service_requests toneBlue
class node_restaurant_ops,node_dashboard,node_menu_management,node_table_setup,node_payments toneAmber
class node_demo_requests,node_admin_ops toneMint
class node_web_routes,node_models,node_database,node_cache toneRose
class node_guest,node_staff,node_administrator toneIndigo
```

## Components

### Guest experience

- [Landing and demo](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/PublicController.php): `app/Http/Controllers/PublicController.php`
- [QR menu](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/MenuController.php): `app/Http/Controllers/MenuController.php`
- [Menu presentation](https://github.com/ledziqo/zemy/blob/main/resources/views/menu/show.blade.php): `resources/views/menu/show.blade.php`
- [Guest visit tracking](https://github.com/ledziqo/zemy/blob/main/app/Support/GuestVisitManager.php): `app/Support/GuestVisitManager.php`
- [Order submission](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/OrderController.php): `app/Http/Controllers/OrderController.php`
- [Waiter and bill requests](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/ServiceRequestController.php): `app/Http/Controllers/ServiceRequestController.php`

### Restaurant operations

- [Restaurant operations](https://github.com/ledziqo/zemy/tree/main/app/Http/Controllers/Restaurant): `app/Http/Controllers/Restaurant`
- [Dashboard and workboard](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Restaurant/DashboardController.php): `app/Http/Controllers/Restaurant/DashboardController.php`
- [Menu management](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Restaurant/MenuItemController.php): `app/Http/Controllers/Restaurant/MenuItemController.php`
- [Tables and QR setup](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Restaurant/TableController.php): `app/Http/Controllers/Restaurant/TableController.php`
- [Payment records](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Admin/PaymentController.php): `app/Http/Controllers/Admin/PaymentController.php`

### Platform administration

- [Demo requests](https://github.com/ledziqo/zemy/blob/main/app/Http/Controllers/Admin/DemoRequestController.php): `app/Http/Controllers/Admin/DemoRequestController.php`
- [Admin management](https://github.com/ledziqo/zemy/tree/main/app/Http/Controllers/Admin): `app/Http/Controllers/Admin`

### Application core

- [Web routes](https://github.com/ledziqo/zemy/blob/main/routes/web.php): `routes/web.php`
- [Domain models](https://github.com/ledziqo/zemy/tree/main/app/Models): `app/Models`
- **Application database**
- [Menu and workboard caches](https://github.com/ledziqo/zemy/blob/main/app/Support/PublicMenuCache.php): `app/Support/PublicMenuCache.php`

### Other components

- **Guest**
- **Restaurant staff**
- **Administrator**

## Connections

- Guest → Web routes: opens pages
- Web routes → Landing and demo: dispatches
- Landing and demo → Demo requests: submits inquiry
- Web routes → QR menu: dispatches
- QR menu → Menu presentation: renders menu
- Guest → QR menu: scans table URL
- QR menu → Guest visit tracking: resolves visit
- Order submission → Guest visit tracking: resolves visit
- Guest → Order submission: submits cart
- Order submission → Domain models: creates order
- Guest → Waiter and bill requests: requests service
- Waiter and bill requests → Domain models: records request
- Restaurant staff → Restaurant operations: manages restaurant
- Restaurant operations → Dashboard and workboard: opens dashboard
- Restaurant operations → Menu management: maintains menu
- Restaurant operations → Tables and QR setup: configures tables
- Dashboard and workboard → Domain models: queries operations
- Tables and QR setup → Menu and workboard caches: invalidates menu cache
- Administrator → Admin management: manages platform
- Admin management → Payment records: reviews payments
- Admin management → Domain models: manages records
- Domain models → Application database: reads and writes
