# sankalpgg/foodwebpl architecture

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

## Overview

Food Web Pl is a menu-driven Python CLI replica of a food-ordering platform. Its main workflow is registration or login, browsing menu items or popular cuisine, adding selections to a cart, entering a delivery address, and placing an order; order placement also records feedback in MySQL. The graph focuses on the README-designated main program, pl.py. The other Python files appear to be separate experiments, and the SQL contents were not sampled, so their runtime relationships are not inferred.

Main entry points: [`pl.py`](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py) (Home menu)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Account access"]
  node_cli["CLI entry<br/>[pl.py]"]
  node_accounts["Login and registration<br/>[pl.py]"]
  node_account_delete["Account deletion<br/>[pl.py]"]
end

subgraph group_ordering["Food ordering"]
  node_home["Home menu<br/>[pl.py]"]
  node_menu_browse["Menu browsing<br/>[pl.py]"]
  node_popular["Popular cuisine<br/>[pl.py]"]
  node_cart["Cart and totals<br/>[pl.py]"]
  node_address["Delivery address<br/>[pl.py]"]
  node_place_order["Order placement<br/>[pl.py]"]
end

subgraph group_persistence["Persistence"]
  node_feedback["Feedback capture<br/>[pl.py]"]
  node_mysql[("MySQL database")]
  node_menu_sql["Menu SQL asset"]
  node_popular_sql["Popular SQL asset"]
  node_feedback_sql["Feedback SQL asset"]
end

node_user(("CLI user"))

node_user -->|"chooses entry"| node_cli
node_cli -->|"dispatches login"| node_accounts
node_accounts -->|"opens on success"| node_home
node_accounts -->|"retries registration"| node_accounts
node_user -->|"chooses actions"| node_home
node_home -->|"dispatches browse"| node_menu_browse
node_home -->|"dispatches popular"| node_popular
node_home -->|"dispatches cart"| node_cart
node_home -->|"dispatches address"| node_address
node_home -->|"dispatches order"| node_place_order
node_home -->|"dispatches deletion"| node_account_delete
node_menu_browse -->|"reads menu"| node_mysql
node_popular -->|"reads popular items"| node_mysql
node_menu_browse -->|"adds selections"| node_cart
node_popular -->|"adds selections"| node_cart
node_menu_browse -->|"opens cart"| node_cart
node_place_order -->|"prompts feedback"| node_feedback
node_feedback -->|"inserts feedback"| node_mysql

click node_cli "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_accounts "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_account_delete "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_home "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_menu_browse "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_popular "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_cart "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_address "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_place_order "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_feedback "https://github.com/sankalpgg/foodwebpl/blob/main/pl.py"
click node_menu_sql "https://github.com/sankalpgg/foodwebpl/blob/main/DB/zomato_menu.sql.sql"
click node_popular_sql "https://github.com/sankalpgg/foodwebpl/blob/main/DB/zomato_popular.sql.sql"
click node_feedback_sql "https://github.com/sankalpgg/foodwebpl/blob/main/DB/zomato_feedback.sql.sql"

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_cli,node_accounts,node_account_delete,node_user toneBlue
class node_home,node_menu_browse,node_popular,node_cart,node_address,node_place_order toneAmber
class node_feedback,node_mysql,node_menu_sql,node_popular_sql,node_feedback_sql toneMint
```

## Components

### Account access

- [CLI entry](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- [Login and registration](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- [Account deletion](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`

### Food ordering

- [Home menu](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- [Menu browsing](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- [Popular cuisine](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- [Cart and totals](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- [Delivery address](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- [Order placement](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`

### Persistence

- [Feedback capture](https://github.com/sankalpgg/foodwebpl/blob/main/pl.py): `pl.py`
- **MySQL database**
- [Menu SQL asset](https://github.com/sankalpgg/foodwebpl/blob/main/DB/zomato_menu.sql.sql): `DB/zomato_menu.sql.sql`
- [Popular SQL asset](https://github.com/sankalpgg/foodwebpl/blob/main/DB/zomato_popular.sql.sql): `DB/zomato_popular.sql.sql`
- [Feedback SQL asset](https://github.com/sankalpgg/foodwebpl/blob/main/DB/zomato_feedback.sql.sql): `DB/zomato_feedback.sql.sql`

### Other components

- **CLI user**

## Connections

- CLI user → CLI entry: chooses entry
- CLI entry → Login and registration: dispatches login
- Login and registration → Home menu: opens on success
- Login and registration → Login and registration: retries registration
- CLI user → Home menu: chooses actions
- Home menu → Menu browsing: dispatches browse
- Home menu → Popular cuisine: dispatches popular
- Home menu → Cart and totals: dispatches cart
- Home menu → Delivery address: dispatches address
- Home menu → Order placement: dispatches order
- Home menu → Account deletion: dispatches deletion
- Menu browsing → MySQL database: reads menu
- Popular cuisine → MySQL database: reads popular items
- Menu browsing → Cart and totals: adds selections
- Popular cuisine → Cart and totals: adds selections
- Menu browsing → Cart and totals: opens cart
- Order placement → Feedback capture: prompts feedback
- Feedback capture → MySQL database: inserts feedback
