# kolomfolox-lab/waitly_source architecture

> Architecture diagram of the GitHub repository kolomfolox-lab/waitly_source, 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/kolomfolox-lab/waitly_source
- Repository: https://github.com/kolomfolox-lab/waitly_source

## Overview

Waitly is a multi-tenant restaurant-management SaaS with separate owner/admin, staff POS, guest, kiosk, and public-marketing frontends backed by a Django API. A representative guest journey loads a restaurant/table menu, submits an order, and follows its status while staff and kitchen workflows process it. The README also documents bookings, subscriptions, analytics, multilingual menus, AI, and notifications. The map combines those documented capabilities with sampled frontend/API evidence; backend implementation beyond the listed API modules is not visible in the supplied tree or excerpts.

Main entry points: [`waitly_backend/api_v1/pos_views.py`](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/pos_views.py) (Order workflow), [`waitly-guest/src/App.tsx`](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly-guest/src/App.tsx) (Guest app), [`Waitly-Frontend/src/App.tsx`](https://github.com/kolomfolox-lab/waitly_source/blob/main/Waitly-Frontend/src/App.tsx) (Owner workspace), [`waitly_backend/api_v1/auth_views.py`](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/auth_views.py) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["Restaurant clients"]
  node_owner["Owner workspace<br/>[App.tsx]"]
  node_admin["Admin workspace<br/>[App.tsx]"]
end

subgraph group_backend["Platform API"]
  node_orders["Order workflow<br/>[pos_views.py]"]
  node_booking["Bookings<br/>[booking_views.py]"]
  node_analytics["Analytics"]
end

subgraph group_operations["Restaurant operations"]
  node_pos["Staff POS<br/>[main.tsx]"]
  node_kitchen["Kitchen workflow<br/>[kitchen_views.py]"]
  node_inventory["Inventory"]
end

subgraph group_engagement["Guest engagement"]
  node_guest["Guest app<br/>[App.tsx]"]
  node_kiosk["Kiosk ordering<br/>[App.tsx]"]
  node_menu["Guest menu<br/>[guest_views.py]"]
  node_reviews["Review analysis"]
end

subgraph group_platform["Shared platform"]
  node_subscriptions["Subscriptions"]
  node_auth["Authentication<br/>[auth_views.py]"]
  node_notifications["Notifications"]
  node_database[("PostgreSQL")]
  node_realtime["WebSocket updates"]
end

node_telegram(("Telegram"))
node_restaurant_guest(("Restaurant guest"))
node_restaurant_staff(("Restaurant staff"))
node_owner_actor(("Restaurant owner"))
node_mobile(("Mobile client"))

node_restaurant_guest -->|"uses"| node_guest
node_restaurant_guest -.->|"orders via"| node_kiosk
node_guest -->|"loads menu"| node_menu
node_kiosk -->|"fetches menu"| node_menu
node_guest -->|"submits orders"| node_orders
node_kiosk -.->|"submits orders"| node_orders
node_restaurant_staff -->|"uses"| node_pos
node_pos -->|"manages checks"| node_orders
node_orders -->|"dispatches orders"| node_kitchen
node_kitchen -.->|"deducts stock"| node_inventory
node_guest -.->|"manages bookings"| node_booking
node_booking -->|"sends reminders"| node_telegram
node_owner_actor -->|"manages restaurant"| node_owner
node_owner_actor -.->|"manages restaurant"| node_admin
node_owner -.->|"views performance"| node_analytics
node_admin -.->|"views performance"| node_analytics
node_owner -.->|"manages license"| node_subscriptions
node_guest -.->|"submits feedback"| node_reviews
node_reviews -.->|"AI integration"| node_telegram
node_owner -->|"authenticates"| node_auth
node_admin -->|"authenticates"| node_auth
node_pos -.->|"authenticates"| node_auth
node_auth -->|"reads and writes"| node_database
node_menu -->|"reads menu data"| node_database
node_orders -->|"stores orders"| node_database
node_booking -->|"stores bookings"| node_database
node_inventory -->|"stores stock"| node_database
node_analytics -.->|"reads metrics"| node_database
node_orders -.->|"publishes status"| node_realtime
node_realtime -.->|"streams updates"| node_mobile
node_realtime -.->|"streams updates"| node_restaurant_guest
node_notifications -.->|"push notifications"| node_mobile

click node_guest "https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly-guest/src/App.tsx"
click node_kiosk "https://github.com/kolomfolox-lab/waitly_source/blob/main/kiosk/src/App.tsx"
click node_owner "https://github.com/kolomfolox-lab/waitly_source/blob/main/Waitly-Frontend/src/App.tsx"
click node_admin "https://github.com/kolomfolox-lab/waitly_source/blob/main/admin_panel_react/src/App.tsx"
click node_pos "https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly-pos/src/main.tsx"
click node_menu "https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/guest_views.py"
click node_orders "https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/pos_views.py"
click node_kitchen "https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/kitchen_views.py"
click node_booking "https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/booking_views.py"
click node_inventory "https://github.com/kolomfolox-lab/waitly_source/tree/main/waitly_backend/apps/inventory"
click node_analytics "https://github.com/kolomfolox-lab/waitly_source/tree/main/waitly_backend/apps/analytics"
click node_auth "https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/auth_views.py"

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_owner,node_admin,node_mobile toneBlue
class node_orders,node_booking,node_analytics toneAmber
class node_pos,node_kitchen,node_inventory toneMint
class node_guest,node_kiosk,node_menu,node_reviews toneRose
class node_subscriptions,node_auth,node_notifications,node_database,node_realtime,node_telegram,node_restaurant_guest,node_restaurant_staff,node_owner_actor toneIndigo
```

## Components

### Restaurant clients

- [Owner workspace](https://github.com/kolomfolox-lab/waitly_source/blob/main/Waitly-Frontend/src/App.tsx): `Waitly-Frontend/src/App.tsx`
- [Admin workspace](https://github.com/kolomfolox-lab/waitly_source/blob/main/admin_panel_react/src/App.tsx): `admin_panel_react/src/App.tsx`

### Platform API

- [Order workflow](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/pos_views.py): `waitly_backend/api_v1/pos_views.py`
- [Bookings](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/booking_views.py): `waitly_backend/api_v1/booking_views.py`
- [Analytics](https://github.com/kolomfolox-lab/waitly_source/tree/main/waitly_backend/apps/analytics): `waitly_backend/apps/analytics`

### Restaurant operations

- [Staff POS](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly-pos/src/main.tsx): `waitly-pos/src/main.tsx`
- [Kitchen workflow](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/kitchen_views.py): `waitly_backend/api_v1/kitchen_views.py`
- [Inventory](https://github.com/kolomfolox-lab/waitly_source/tree/main/waitly_backend/apps/inventory): `waitly_backend/apps/inventory`

### Guest engagement

- [Guest app](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly-guest/src/App.tsx): `waitly-guest/src/App.tsx`
- [Kiosk ordering](https://github.com/kolomfolox-lab/waitly_source/blob/main/kiosk/src/App.tsx): `kiosk/src/App.tsx`
- [Guest menu](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/guest_views.py): `waitly_backend/api_v1/guest_views.py`
- **Review analysis**

### Shared platform

- **Subscriptions**
- [Authentication](https://github.com/kolomfolox-lab/waitly_source/blob/main/waitly_backend/api_v1/auth_views.py): `waitly_backend/api_v1/auth_views.py`
- **Notifications**
- **PostgreSQL**
- **WebSocket updates**

### Other components

- **Telegram**
- **Restaurant guest**
- **Restaurant staff**
- **Restaurant owner**
- **Mobile client**

## Connections

- Restaurant guest → Guest app: uses
- Restaurant guest → Kiosk ordering: orders via
- Guest app → Guest menu: loads menu
- Kiosk ordering → Guest menu: fetches menu
- Guest app → Order workflow: submits orders
- Kiosk ordering → Order workflow: submits orders
- Restaurant staff → Staff POS: uses
- Staff POS → Order workflow: manages checks
- Order workflow → Kitchen workflow: dispatches orders
- Kitchen workflow → Inventory: deducts stock
- Guest app → Bookings: manages bookings
- Bookings → Telegram: sends reminders
- Restaurant owner → Owner workspace: manages restaurant
- Restaurant owner → Admin workspace: manages restaurant
- Owner workspace → Analytics: views performance
- Admin workspace → Analytics: views performance
- Owner workspace → Subscriptions: manages license
- Guest app → Review analysis: submits feedback
- Review analysis → Telegram: AI integration
- Owner workspace → Authentication: authenticates
- Admin workspace → Authentication: authenticates
- Staff POS → Authentication: authenticates
- Authentication → PostgreSQL: reads and writes
- Guest menu → PostgreSQL: reads menu data
- Order workflow → PostgreSQL: stores orders
- Bookings → PostgreSQL: stores bookings
- Inventory → PostgreSQL: stores stock
- Analytics → PostgreSQL: reads metrics
- Order workflow → WebSocket updates: publishes status
- WebSocket updates → Mobile client: streams updates
- WebSocket updates → Restaurant guest: streams updates
- Notifications → Mobile client: push notifications
