# gundavenkatasai/pizza_craft architecture

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

- Interactive diagram: https://gitdiagram.com/gundavenkatasai/pizza_craft
- Repository: https://github.com/gundavenkatasai/pizza_craft

## Overview

PizzaCraft is a multi-portal pizza ordering and operations platform: customers browse a menu, manage a cart, check out, and track orders; restaurant staff and administrators manage orders and catalog operations, while super-admins oversee global operations. An Express/MongoDB backend provides authentication, ordering, payments, and management APIs, with documented real-time updates and email. The map combines sampled routing and service relationships with README-documented capabilities; unsampled page internals are not inferred.

Main entry points: [`project/server/index.js`](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/index.js) (API Server), [`project/src/App.tsx`](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/App.tsx) (Customer App), [`admin-dashboard/src/App.tsx`](https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/App.tsx) (Admin Portal), [`project/server/routes/orders.js`](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/orders.js) (Order API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer Ordering"]
  node_customer_app["Customer App<br/>[App.tsx]"]
  node_menu_browse["Menu Browse<br/>[Menu.tsx]"]
  node_cart["Cart State<br/>[CartContext.tsx]"]
  node_checkout["Checkout<br/>[Checkout.tsx]"]
  node_customer_orders["Order Tracking<br/>[Orders.tsx]"]
  node_customer_auth["Customer Auth<br/>[AuthContext.tsx]"]
end

subgraph group_backend["Platform Backend"]
  node_api_server["API Server<br/>[index.js]"]
  node_auth_routes["Authentication API<br/>[auth.js]"]
  node_menu_routes["Menu API<br/>[menu.js]"]
  node_order_routes["Order API<br/>[orders.js]"]
  node_payment_routes["Payment API<br/>[payment.js]"]
  node_order_pricing["Order Pricing<br/>[orderService.js]"]
  node_auth_middleware["Access Control<br/>[auth.js]"]
  node_email["Email Notifications<br/>[emailService.js]"]
  node_socket["Live Order Events<br/>[socketService.js]"]
  node_mongo[("MongoDB<br/>[database.js]")]
end

subgraph group_restaurant["Restaurant Admin"]
  node_admin_app["Admin Portal<br/>[App.tsx]"]
  node_admin_auth["Admin Auth<br/>[AuthContext.tsx]"]
  node_admin_orders["Order Management<br/>[Orders.tsx]"]
  node_admin_catalog["Catalog &amp; Inventory<br/>[Inventory.tsx]"]
end

subgraph group_global["Super Admin"]
  node_super_admin["Super Admin Portal<br/>[App.tsx]"]
  node_global_ops["Global Operations<br/>[GlobalOrders.tsx]"]
end

node_shopper(("Customer"))
node_staff(("Restaurant Staff"))
node_razorpay["Razorpay"]
node_mail_provider["Email Provider"]

node_shopper -->|"uses"| node_customer_app
node_customer_app -->|"routes to"| node_menu_browse
node_customer_app -->|"provides state"| node_cart
node_customer_app -->|"routes to"| node_checkout
node_customer_app -->|"routes to"| node_customer_orders
node_customer_app -->|"provides auth"| node_customer_auth
node_customer_app -.->|"requests API"| node_api_server
node_checkout -.->|"starts payment"| node_payment_routes
node_payment_routes -.->|"integrates payment"| node_razorpay
node_api_server -->|"mounts routes"| node_auth_routes
node_api_server -->|"mounts routes"| node_menu_routes
node_api_server -->|"mounts routes"| node_order_routes
node_api_server -->|"mounts routes"| node_payment_routes
node_api_server -->|"connects database"| node_mongo
node_auth_routes -->|"checks access"| node_auth_middleware
node_order_routes -->|"recalculates totals"| node_order_pricing
node_payment_routes -->|"recalculates totals"| node_order_pricing
node_order_routes -->|"sends notifications"| node_email
node_order_routes -->|"publishes events"| node_socket
node_email -.->|"sends email"| node_mail_provider
node_staff -->|"uses"| node_admin_app
node_admin_app -->|"provides auth"| node_admin_auth
node_admin_app -->|"routes to"| node_admin_orders
node_admin_app -->|"routes to"| node_admin_catalog
node_admin_app -.->|"uses API"| node_api_server
node_admin_orders -.->|"syncs live orders"| node_socket
node_staff -->|"uses"| node_super_admin
node_super_admin -->|"routes to"| node_global_ops
node_super_admin -.->|"uses API"| node_api_server

click node_customer_app "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/App.tsx"
click node_menu_browse "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/pages/Menu.tsx"
click node_cart "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/contexts/CartContext.tsx"
click node_checkout "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/pages/Checkout.tsx"
click node_customer_orders "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/pages/Orders.tsx"
click node_customer_auth "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/contexts/AuthContext.tsx"
click node_api_server "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/index.js"
click node_auth_routes "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/auth.js"
click node_menu_routes "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/menu.js"
click node_order_routes "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/orders.js"
click node_payment_routes "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/payment.js"
click node_order_pricing "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/services/orderService.js"
click node_auth_middleware "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/middleware/auth.js"
click node_email "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/services/emailService.js"
click node_socket "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/services/socketService.js"
click node_mongo "https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/config/database.js"
click node_admin_app "https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/App.tsx"
click node_admin_auth "https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/contexts/AuthContext.tsx"
click node_admin_orders "https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/pages/Orders.tsx"
click node_admin_catalog "https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/pages/Inventory.tsx"
click node_super_admin "https://github.com/gundavenkatasai/pizza_craft/blob/main/super-admin-dashboard/src/App.tsx"
click node_global_ops "https://github.com/gundavenkatasai/pizza_craft/blob/main/super-admin-dashboard/src/pages/GlobalOrders.tsx"

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_customer_app,node_menu_browse,node_cart,node_checkout,node_customer_orders,node_customer_auth toneBlue
class node_api_server,node_auth_routes,node_menu_routes,node_order_routes,node_payment_routes,node_order_pricing,node_auth_middleware,node_email,node_socket,node_mongo toneAmber
class node_admin_app,node_admin_auth,node_admin_orders,node_admin_catalog toneMint
class node_super_admin,node_global_ops toneRose
class node_shopper,node_staff,node_razorpay,node_mail_provider toneIndigo
```

## Components

### Customer Ordering

- [Customer App](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/App.tsx): `project/src/App.tsx`
- [Menu Browse](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/pages/Menu.tsx): `project/src/pages/Menu.tsx`
- [Cart State](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/contexts/CartContext.tsx): `project/src/contexts/CartContext.tsx`
- [Checkout](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/pages/Checkout.tsx): `project/src/pages/Checkout.tsx`
- [Order Tracking](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/pages/Orders.tsx): `project/src/pages/Orders.tsx`
- [Customer Auth](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/src/contexts/AuthContext.tsx): `project/src/contexts/AuthContext.tsx`

### Platform Backend

- [API Server](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/index.js): `project/server/index.js`
- [Authentication API](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/auth.js): `project/server/routes/auth.js`
- [Menu API](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/menu.js): `project/server/routes/menu.js`
- [Order API](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/orders.js): `project/server/routes/orders.js`
- [Payment API](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/routes/payment.js): `project/server/routes/payment.js`
- [Order Pricing](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/services/orderService.js): `project/server/services/orderService.js`
- [Access Control](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/middleware/auth.js): `project/server/middleware/auth.js`
- [Email Notifications](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/services/emailService.js): `project/server/services/emailService.js`
- [Live Order Events](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/services/socketService.js): `project/server/services/socketService.js`
- [MongoDB](https://github.com/gundavenkatasai/pizza_craft/blob/main/project/server/config/database.js): `project/server/config/database.js`

### Restaurant Admin

- [Admin Portal](https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/App.tsx): `admin-dashboard/src/App.tsx`
- [Admin Auth](https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/contexts/AuthContext.tsx): `admin-dashboard/src/contexts/AuthContext.tsx`
- [Order Management](https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/pages/Orders.tsx): `admin-dashboard/src/pages/Orders.tsx`
- [Catalog & Inventory](https://github.com/gundavenkatasai/pizza_craft/blob/main/admin-dashboard/src/pages/Inventory.tsx): `admin-dashboard/src/pages/Inventory.tsx`

### Super Admin

- [Super Admin Portal](https://github.com/gundavenkatasai/pizza_craft/blob/main/super-admin-dashboard/src/App.tsx): `super-admin-dashboard/src/App.tsx`
- [Global Operations](https://github.com/gundavenkatasai/pizza_craft/blob/main/super-admin-dashboard/src/pages/GlobalOrders.tsx): `super-admin-dashboard/src/pages/GlobalOrders.tsx`

### Other components

- **Customer**
- **Restaurant Staff**
- **Razorpay**
- **Email Provider**

## Connections

- Customer → Customer App: uses
- Customer App → Menu Browse: routes to (evidence: `project/src/App.tsx`)
- Customer App → Cart State: provides state (evidence: `project/src/App.tsx`)
- Customer App → Checkout: routes to (evidence: `project/src/App.tsx`)
- Customer App → Order Tracking: routes to (evidence: `project/src/App.tsx`)
- Customer App → Customer Auth: provides auth (evidence: `project/src/App.tsx`)
- Customer App → API Server: requests API
- Checkout → Payment API: starts payment
- Payment API → Razorpay: integrates payment
- API Server → Authentication API: mounts routes (evidence: `project/server/index.js`)
- API Server → Menu API: mounts routes (evidence: `project/server/index.js`)
- API Server → Order API: mounts routes (evidence: `project/server/index.js`)
- API Server → Payment API: mounts routes (evidence: `project/server/index.js`)
- API Server → MongoDB: connects database (evidence: `project/server/index.js`)
- Authentication API → Access Control: checks access (evidence: `project/server/routes/auth.js`)
- Order API → Order Pricing: recalculates totals (evidence: `project/server/routes/orders.js`)
- Payment API → Order Pricing: recalculates totals (evidence: `project/server/routes/payment.js`)
- Order API → Email Notifications: sends notifications (evidence: `project/server/routes/orders.js`)
- Order API → Live Order Events: publishes events (evidence: `project/server/routes/orders.js`)
- Email Notifications → Email Provider: sends email
- Restaurant Staff → Admin Portal: uses
- Admin Portal → Admin Auth: provides auth (evidence: `admin-dashboard/src/App.tsx`)
- Admin Portal → Order Management: routes to (evidence: `admin-dashboard/src/App.tsx`)
- Admin Portal → Catalog & Inventory: routes to (evidence: `admin-dashboard/src/App.tsx`)
- Admin Portal → API Server: uses API
- Order Management → Live Order Events: syncs live orders
- Restaurant Staff → Super Admin Portal: uses
- Super Admin Portal → Global Operations: routes to (evidence: `super-admin-dashboard/src/App.tsx`)
- Super Admin Portal → API Server: uses API
