# vy2351220277-design/nguyenngocvy_24ct1_cnpm architecture

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

- Interactive diagram: https://gitdiagram.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm
- Repository: https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm

## Overview

Umi-Town is a Django restaurant-ordering application. Customers browse and review food, manage accounts and a cart, then check out, pay by COD or a VNPay simulation, and view orders. Staff have an analytics dashboard; Django admin supports catalog management. The graph follows the sampled request handlers and model relationships. Some URL routing and model links are supported only by the SOURCE INDEX; the seed-data command is included because it is a core module, not as a deployment step.

Main entry points: [`config/urls.py`](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/config/urls.py) (Request routing), [`apps/menu/models.py`](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/menu/models.py) (Categories and food), [`apps/orders/views.py`](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/views.py) (Checkout and order views), [`apps/cart/views.py`](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/cart/views.py) (Cart handling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["Web entry"]
  node_web["Request routing<br/>[urls.py]"]
  node_account_routes["Account routes<br/>[urls.py]"]
  node_cart_routes["Cart routes<br/>[urls.py]"]
  node_order_routes["Order routes<br/>[urls.py]"]
end

subgraph group_catalog["Food catalog"]
  node_catalog_views["Menu and food views<br/>[views.py]"]
  node_catalog_data[("Categories and food<br/>[models.py]")]
  node_seed["Sample data command<br/>[seed_data.py]"]
end

subgraph group_customers["Customer features"]
  node_account_views["Account and wishlist<br/>[views.py]"]
  node_account_data[("Profiles, wishlists, reviews<br/>[models.py]")]
end

subgraph group_commerce["Orders and payments"]
  node_cart_views["Cart handling<br/>[views.py]"]
  node_cart_data[("Cart and items<br/>[models.py]")]
  node_order_views["Checkout and order views<br/>[views.py]"]
  node_order_data[("Orders and order items<br/>[models.py]")]
  node_payment["Payment simulation<br/>[views.py]"]
end

subgraph group_operations["Staff operations"]
  node_dashboard["Sales dashboard<br/>[views.py]"]
  node_admin_catalog["Catalog administration<br/>[admin.py]"]
  node_admin_site["Django admin site"]
end

node_shopper(("Customer"))
node_staff(("Staff user"))

node_shopper -->|"requests pages"| node_web
node_web -->|"routes menu"| node_catalog_views
node_web -->|"includes accounts"| node_account_routes
node_web -->|"includes cart"| node_cart_routes
node_web -->|"includes orders"| node_order_routes
node_account_routes -->|"routes requests"| node_account_views
node_cart_routes -->|"routes requests"| node_cart_views
node_order_routes -->|"routes requests"| node_order_views
node_catalog_views -->|"reads catalog"| node_catalog_data
node_catalog_views -->|"updates reviews"| node_account_data
node_account_views -->|"manages profiles"| node_account_data
node_account_views -->|"selects food"| node_catalog_data
node_cart_views -->|"manages cart"| node_cart_data
node_cart_views -->|"looks up food"| node_catalog_data
node_order_views -->|"gets cart"| node_cart_views
node_order_views -->|"reads cart items"| node_cart_data
node_order_views -->|"creates orders"| node_order_data
node_order_views -->|"dispatches payment"| node_payment
node_payment -->|"updates payment status"| node_order_data
node_seed -->|"creates catalog"| node_catalog_data
node_seed -->|"creates profiles"| node_account_data
node_seed -->|"creates sample orders"| node_order_data
node_staff -->|"requests dashboard"| node_web
node_web -->|"routes dashboard"| node_dashboard
node_dashboard -->|"aggregates sales"| node_order_data
node_dashboard -->|"summarizes inventory"| node_catalog_data
node_web -->|"routes admin"| node_admin_site
node_admin_site -.->|"registers catalog"| node_admin_catalog
node_admin_catalog -->|"manages catalog"| node_catalog_data

click node_web "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/config/urls.py"
click node_account_routes "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/accounts/urls.py"
click node_cart_routes "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/cart/urls.py"
click node_order_routes "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/urls.py"
click node_catalog_views "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/core/views.py"
click node_catalog_data "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/menu/models.py"
click node_seed "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/menu/management/commands/seed_data.py"
click node_account_views "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/accounts/views.py"
click node_account_data "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/accounts/models.py"
click node_cart_views "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/cart/views.py"
click node_cart_data "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/cart/models.py"
click node_order_views "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/views.py"
click node_order_data "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/models.py"
click node_payment "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/views.py"
click node_dashboard "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/core/views.py"
click node_admin_catalog "https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/menu/admin.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_web,node_account_routes,node_cart_routes,node_order_routes,node_staff toneBlue
class node_catalog_views,node_catalog_data,node_seed toneAmber
class node_account_views,node_account_data toneMint
class node_cart_views,node_cart_data,node_order_views,node_order_data,node_payment toneRose
class node_dashboard,node_admin_catalog,node_admin_site,node_shopper toneIndigo
```

## Components

### Web entry

- [Request routing](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/config/urls.py): `config/urls.py`
- [Account routes](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/accounts/urls.py): `apps/accounts/urls.py`
- [Cart routes](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/cart/urls.py): `apps/cart/urls.py`
- [Order routes](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/urls.py): `apps/orders/urls.py`

### Food catalog

- [Menu and food views](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/core/views.py): `apps/core/views.py`
- [Categories and food](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/menu/models.py): `apps/menu/models.py`
- [Sample data command](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/menu/management/commands/seed_data.py): `apps/menu/management/commands/seed_data.py`

### Customer features

- [Account and wishlist](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/accounts/views.py): `apps/accounts/views.py`
- [Profiles, wishlists, reviews](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/accounts/models.py): `apps/accounts/models.py`

### Orders and payments

- [Cart handling](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/cart/views.py): `apps/cart/views.py`
- [Cart and items](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/cart/models.py): `apps/cart/models.py`
- [Checkout and order views](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/views.py): `apps/orders/views.py`
- [Orders and order items](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/models.py): `apps/orders/models.py`
- [Payment simulation](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/orders/views.py): `apps/orders/views.py`

### Staff operations

- [Sales dashboard](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/core/views.py): `apps/core/views.py`
- [Catalog administration](https://github.com/vy2351220277-design/nguyenngocvy_24ct1_cnpm/blob/main/apps/menu/admin.py): `apps/menu/admin.py`
- **Django admin site**

### Other components

- **Customer**
- **Staff user**

## Connections

- Customer → Request routing: requests pages (evidence: `config/urls.py`)
- Request routing → Menu and food views: routes menu (evidence: `config/urls.py`)
- Request routing → Account routes: includes accounts (evidence: `config/urls.py`)
- Request routing → Cart routes: includes cart (evidence: `config/urls.py`)
- Request routing → Order routes: includes orders (evidence: `config/urls.py`)
- Account routes → Account and wishlist: routes requests (evidence: `apps/accounts/urls.py`)
- Cart routes → Cart handling: routes requests (evidence: `apps/cart/urls.py`)
- Order routes → Checkout and order views: routes requests (evidence: `apps/orders/urls.py`)
- Menu and food views → Categories and food: reads catalog (evidence: `apps/core/views.py`)
- Menu and food views → Profiles, wishlists, reviews: updates reviews (evidence: `apps/core/views.py`)
- Account and wishlist → Profiles, wishlists, reviews: manages profiles (evidence: `apps/accounts/views.py`)
- Account and wishlist → Categories and food: selects food (evidence: `apps/accounts/views.py`)
- Cart handling → Cart and items: manages cart (evidence: `apps/cart/views.py`)
- Cart handling → Categories and food: looks up food (evidence: `apps/cart/views.py`)
- Checkout and order views → Cart handling: gets cart (evidence: `apps/orders/views.py`)
- Checkout and order views → Cart and items: reads cart items (evidence: `apps/orders/views.py`)
- Checkout and order views → Orders and order items: creates orders (evidence: `apps/orders/views.py`)
- Checkout and order views → Payment simulation: dispatches payment (evidence: `apps/orders/views.py`)
- Payment simulation → Orders and order items: updates payment status (evidence: `apps/orders/views.py`)
- Sample data command → Categories and food: creates catalog (evidence: `apps/menu/management/commands/seed_data.py`)
- Sample data command → Profiles, wishlists, reviews: creates profiles (evidence: `apps/menu/management/commands/seed_data.py`)
- Sample data command → Orders and order items: creates sample orders (evidence: `apps/menu/management/commands/seed_data.py`)
- Staff user → Request routing: requests dashboard (evidence: `config/urls.py`)
- Request routing → Sales dashboard: routes dashboard (evidence: `config/urls.py`)
- Sales dashboard → Orders and order items: aggregates sales (evidence: `apps/core/views.py`)
- Sales dashboard → Categories and food: summarizes inventory (evidence: `apps/core/views.py`)
- Request routing → Django admin site: routes admin (evidence: `config/urls.py`)
- Django admin site → Catalog administration: registers catalog
- Catalog administration → Categories and food: manages catalog (evidence: `apps/menu/admin.py`)
