# keshavpandey200222-cell/lakhnawi_bits architecture

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

- Interactive diagram: https://gitdiagram.com/keshavpandey200222-cell/lakhnawi_bits
- Repository: https://github.com/keshavpandey200222-cell/lakhnawi_bits

## Overview

Lakhnawi Bites is a multi-page food-ordering application for customers and restaurant operators. Customers browse restaurants and menus, build a cart, check out, and track orders; operators manage orders and menus. The frontend is organized around shared state, event handling, API wrappers, and view rendering, with an Express API backed by PostgreSQL. The README documents review persistence with a local fallback and GPS tracking; some backend and tracking implementation details were not excerpted, so those links are shown only where documented.

Main entry points: [`src/render.js`](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/render.js) (View router), [`src/api.js`](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/api.js) (API client), [`src/main.js`](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/main.js) (App startup), [`src/events.js`](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/events.js) (Event handling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_consumer["Customer experience"]
  node_catalog["Restaurant catalog<br/>[homeView.js]"]
  node_menu["Menu browsing<br/>[menuView.js]"]
  node_cart["Cart and checkout<br/>[cart.js]"]
  node_cartview["Cart interface<br/>[modalsView.js]"]
  node_profile["Customer profile<br/>[profileView.js]"]
  node_tracking["Order tracking<br/>[trackingView.js]"]
  node_portal["Portal landing"]
end

subgraph group_operator["Restaurant operations"]
  node_operatorview["Kitchen workspace<br/>[restaurantView.js]"]
  node_operatorlogic["Menu and order controls<br/>[restaurant.js]"]
end

subgraph group_frontend["Frontend core"]
  node_main["App startup<br/>[main.js]"]
  node_events["Event handling<br/>[events.js]"]
  node_state["App state<br/>[state.js]"]
  node_auth["Authentication<br/>[auth.js]"]
  node_render["View router<br/>[render.js]"]
end

subgraph group_backend["API and persistence"]
  node_api["API client<br/>[api.js]"]
  node_server["HTTP API server<br/>[server.js]"]
  node_seed["Seed catalog data<br/>[restaurants.js]"]
  node_dbconn["Database connection<br/>[index.js]"]
  node_schema["Relational schema<br/>[schema.js]"]
end

node_customer(("Food customer"))
node_operator(("Restaurant operator"))
node_postgres[("PostgreSQL")]

node_main -->|"loads data"| node_api
node_main -->|"loads state"| node_state
node_main -->|"binds events"| node_events
node_main -->|"navigates"| node_render
node_customer -.->|"chooses portal"| node_portal
node_customer -.->|"browses"| node_catalog
node_catalog -.->|"opens menu"| node_menu
node_menu -->|"adds items"| node_cartview
node_cartview -->|"updates quantities"| node_menu
node_customer -.->|"checks out"| node_cart
node_cart -->|"creates order"| node_api
node_cart -->|"navigates to"| node_tracking
node_customer -.->|"manages profile"| node_profile
node_customer -.->|"tracks delivery"| node_tracking
node_operator -.->|"manages workspace"| node_operatorview
node_events -->|"dispatches controls"| node_operatorlogic
node_operatorlogic -->|"syncs changes"| node_api
node_events -->|"dispatches auth"| node_auth
node_render -->|"renders view"| node_portal
node_render -->|"renders view"| node_catalog
node_render -->|"renders view"| node_menu
node_render -->|"renders view"| node_profile
node_render -->|"renders view"| node_tracking
node_render -->|"renders view"| node_operatorview
node_api -->|"HTTP requests"| node_server
node_server -->|"uses connection"| node_dbconn
node_dbconn -->|"configures ORM"| node_schema
node_dbconn -->|"connects"| node_postgres
node_server -->|"uses seed data"| node_seed
node_state -->|"initializes catalog"| node_seed
node_events -->|"submits reviews"| node_api

click node_main "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/main.js"
click node_events "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/events.js"
click node_state "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/state.js"
click node_catalog "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/homeView.js"
click node_menu "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/menuView.js"
click node_cart "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/controllers/cart.js"
click node_cartview "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/modalsView.js"
click node_profile "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/profileView.js"
click node_tracking "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/trackingView.js"
click node_portal "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/portalLandingView.js"
click node_auth "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/controllers/auth.js"
click node_operatorview "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/restaurantView.js"
click node_operatorlogic "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/controllers/restaurant.js"
click node_render "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/render.js"
click node_api "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/api.js"
click node_server "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/server.js"
click node_seed "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/data/restaurants.js"
click node_dbconn "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/db/index.js"
click node_schema "https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/db/schema.js"

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_catalog,node_menu,node_cart,node_cartview,node_profile,node_tracking,node_portal toneBlue
class node_operatorview,node_operatorlogic,node_postgres toneAmber
class node_main,node_events,node_state,node_auth,node_render toneMint
class node_api,node_server,node_seed,node_dbconn,node_schema toneRose
class node_customer,node_operator toneIndigo
```

## Components

### Customer experience

- [Restaurant catalog](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/homeView.js): `src/views/homeView.js`
- [Menu browsing](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/menuView.js): `src/views/menuView.js`
- [Cart and checkout](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/controllers/cart.js): `src/controllers/cart.js`
- [Cart interface](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/modalsView.js): `src/views/modalsView.js`
- [Customer profile](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/profileView.js): `src/views/profileView.js`
- [Order tracking](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/trackingView.js): `src/views/trackingView.js`
- [Portal landing](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/portalLandingView.js): `src/views/portalLandingView.js`

### Restaurant operations

- [Kitchen workspace](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/views/restaurantView.js): `src/views/restaurantView.js`
- [Menu and order controls](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/controllers/restaurant.js): `src/controllers/restaurant.js`

### Frontend core

- [App startup](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/main.js): `src/main.js`
- [Event handling](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/events.js): `src/events.js`
- [App state](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/state.js): `src/state.js`
- [Authentication](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/controllers/auth.js): `src/controllers/auth.js`
- [View router](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/render.js): `src/render.js`

### API and persistence

- [API client](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/api.js): `src/api.js`
- [HTTP API server](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/server.js): `server.js`
- [Seed catalog data](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/data/restaurants.js): `src/data/restaurants.js`
- [Database connection](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/db/index.js): `src/db/index.js`
- [Relational schema](https://github.com/keshavpandey200222-cell/lakhnawi_bits/blob/main/src/db/schema.js): `src/db/schema.js`

### Other components

- **Food customer**
- **Restaurant operator**
- **PostgreSQL**

## Connections

- App startup → API client: loads data (evidence: `src/main.js`)
- App startup → App state: loads state (evidence: `src/main.js`)
- App startup → Event handling: binds events (evidence: `src/main.js`)
- App startup → View router: navigates (evidence: `src/main.js`)
- Food customer → Portal landing: chooses portal (evidence: `README.md`)
- Food customer → Restaurant catalog: browses (evidence: `README.md`)
- Restaurant catalog → Menu browsing: opens menu (evidence: `README.md`)
- Menu browsing → Cart interface: adds items (evidence: `src/views/menuView.js`)
- Cart interface → Menu browsing: updates quantities (evidence: `src/views/modalsView.js`)
- Food customer → Cart and checkout: checks out (evidence: `README.md`)
- Cart and checkout → API client: creates order (evidence: `src/controllers/cart.js`)
- Cart and checkout → Order tracking: navigates to (evidence: `src/controllers/cart.js`)
- Food customer → Customer profile: manages profile (evidence: `README.md`)
- Food customer → Order tracking: tracks delivery (evidence: `README.md`)
- Restaurant operator → Kitchen workspace: manages workspace (evidence: `README.md`)
- Event handling → Menu and order controls: dispatches controls (evidence: `src/events.js`)
- Menu and order controls → API client: syncs changes (evidence: `src/controllers/restaurant.js`)
- Event handling → Authentication: dispatches auth (evidence: `src/events.js`)
- View router → Portal landing: renders view (evidence: `src/render.js`)
- View router → Restaurant catalog: renders view (evidence: `src/render.js`)
- View router → Menu browsing: renders view (evidence: `src/render.js`)
- View router → Customer profile: renders view (evidence: `src/render.js`)
- View router → Order tracking: renders view (evidence: `src/render.js`)
- View router → Kitchen workspace: renders view (evidence: `src/render.js`)
- API client → HTTP API server: HTTP requests (evidence: `src/api.js`)
- HTTP API server → Database connection: uses connection (evidence: `server.js`)
- Database connection → Relational schema: configures ORM (evidence: `src/db/index.js`)
- Database connection → PostgreSQL: connects (evidence: `src/db/index.js`)
- HTTP API server → Seed catalog data: uses seed data (evidence: `server.js`)
- App state → Seed catalog data: initializes catalog (evidence: `src/state.js`)
- Event handling → API client: submits reviews (evidence: `src/events.js`)
