# dryn-23/amfaye-bites-web-base-system architecture

> Architecture diagram of the GitHub repository dryn-23/amfaye-bites-web-base-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dryn-23/amfaye-bites-web-base-system
- Repository: https://github.com/dryn-23/amfaye-bites-web-base-system

## Overview

Amfaye Bites is a bakery storefront and staff operations system. Customers browse products, manage a cart, check out, pay, track orders, and communicate with staff; administrators and cashiers manage orders, preparation, inventory, sales, and customer-facing content. The backend exposes these capabilities through an Express API and persists domain records in MongoDB. The README is empty, and several route/controller implementations were not sampled, so the graph shows documented entry points and sampled call relationships without asserting unsampled wiring.

Main entry points: [`amfaye-bites/backend/app.js`](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/app.js) (Express API), [`amfaye-bites/frontend/src/App.jsx`](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/App.jsx) (Routed storefront), [`amfaye-bites/backend/models/index.js`](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/models/index.js) (Commerce records), [`amfaye-bites/backend/routes/chatRoutes.js`](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/chatRoutes.js) (Order chat and images)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web application"]
  node_frontend["Routed storefront<br/>[App.jsx]"]
  node_auth_ui["Auth and cart state<br/>[AuthContext.jsx]"]
  node_store_pages["Browse and checkout<br/>[Checkout.jsx]"]
  node_order_pages["Orders and messages<br/>[MyOrders.jsx]"]
  node_api_client["HTTP client<br/>[api.js]"]
end

subgraph group_api["API and domain"]
  node_api_app["Express API<br/>[app.js]"]
  node_auth_routes["Authentication routes<br/>[authRoutes.js]"]
  node_product_routes["Product routes<br/>[productRoutes.js]"]
  node_order_routes["Order routes<br/>[orderRoutes.js]"]
  node_payment_routes["Payment routes<br/>[paymentRoutes.js]"]
  node_review_routes["Review moderation<br/>[reviewRoutes.js]"]
  node_chat_routes["Order chat and images<br/>[chatRoutes.js]"]
  node_product_controller["Catalog and stock status"]
  node_order_service["Order and stock workflow<br/>[orderService.js]"]
  node_payment_controller["Demo and cash payments"]
  node_chat_service["Conversation service<br/>[chatService.js]"]
  node_image_service["Chat image storage"]
  node_notification_service["Order notifications"]
end

subgraph group_data["Persistent data"]
  node_mongo[("MongoDB<br/>[database.js]")]
  node_domain_models[("Commerce records<br/>[index.js]")]
  node_chat_models[("Chat records")]
  node_image_bucket[("Image files")]
end

subgraph group_operations["Staff operations"]
  node_staff_pages["Staff workspace<br/>[Dashboard.jsx]"]
  node_inventory_routes["Inventory routes<br/>[inventoryRoutes.js]"]
  node_preparation_routes["Preparation queue"]
  node_reports["Reports service<br/>[reportService.js]"]
end

node_customer(("Customer"))
node_staff(("Admin or cashier"))

node_customer -->|"uses storefront"| node_frontend
node_staff -->|"uses workspace"| node_frontend
node_frontend -->|"routes to"| node_store_pages
node_frontend -->|"routes to"| node_order_pages
node_frontend -->|"routes to"| node_staff_pages
node_frontend -->|"provides state"| node_auth_ui
node_store_pages -->|"requests data"| node_api_client
node_order_pages -->|"requests data"| node_api_client
node_staff_pages -->|"requests data"| node_api_client
node_api_client -->|"sends API requests"| node_api_app
node_api_app -->|"mounts"| node_auth_routes
node_api_app -->|"mounts"| node_product_routes
node_api_app -->|"mounts"| node_order_routes
node_api_app -->|"mounts"| node_payment_routes
node_api_app -->|"mounts"| node_inventory_routes
node_api_app -->|"mounts"| node_preparation_routes
node_api_app -->|"mounts"| node_review_routes
node_api_app -->|"mounts"| node_chat_routes
node_product_controller -->|"reads and writes"| node_domain_models
node_order_service -->|"reads and writes"| node_domain_models
node_payment_controller -->|"records payment"| node_order_service
node_payment_controller -->|"reads and writes"| node_domain_models
node_order_service -->|"notifies status"| node_notification_service
node_chat_routes -->|"dispatches actions"| node_chat_service
node_chat_routes -->|"reads and writes"| node_chat_models
node_chat_routes -->|"stores images"| node_image_service
node_image_service -->|"stores files"| node_image_bucket
node_chat_service -->|"reads and writes"| node_chat_models
node_domain_models -->|"persists records"| node_mongo
node_chat_models -->|"persists records"| node_mongo
node_reports -->|"reads records"| node_domain_models

click node_frontend "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/App.jsx"
click node_auth_ui "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/context/AuthContext.jsx"
click node_store_pages "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/pages/Checkout.jsx"
click node_order_pages "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/pages/MyOrders.jsx"
click node_staff_pages "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/pages/admin/Dashboard.jsx"
click node_api_client "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/services/api.js"
click node_api_app "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/app.js"
click node_auth_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/authRoutes.js"
click node_product_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/productRoutes.js"
click node_order_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/orderRoutes.js"
click node_payment_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/paymentRoutes.js"
click node_inventory_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/inventoryRoutes.js"
click node_preparation_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/preparationRoutes.js"
click node_review_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/reviewRoutes.js"
click node_chat_routes "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/chatRoutes.js"
click node_product_controller "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/controllers/productController.js"
click node_order_service "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/orderService.js"
click node_payment_controller "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/controllers/paymentController.js"
click node_chat_service "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/chatService.js"
click node_image_service "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/chatImageService.js"
click node_notification_service "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/notificationService.js"
click node_mongo "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/config/database.js"
click node_domain_models "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/models/index.js"
click node_chat_models "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/models/ChatConversation.js"
click node_image_bucket "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/chatImageService.js"
click node_reports "https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/reportService.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_frontend,node_auth_ui,node_store_pages,node_order_pages,node_api_client toneBlue
class node_api_app,node_auth_routes,node_product_routes,node_order_routes,node_payment_routes,node_review_routes,node_chat_routes,node_product_controller,node_order_service,node_payment_controller,node_chat_service,node_image_service,node_notification_service toneAmber
class node_mongo,node_domain_models,node_chat_models,node_image_bucket toneMint
class node_staff_pages,node_inventory_routes,node_preparation_routes,node_reports toneRose
class node_customer,node_staff toneIndigo
```

## Components

### Web application

- [Routed storefront](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/App.jsx): `amfaye-bites/frontend/src/App.jsx`
- [Auth and cart state](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/context/AuthContext.jsx): `amfaye-bites/frontend/src/context/AuthContext.jsx`
- [Browse and checkout](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/pages/Checkout.jsx): `amfaye-bites/frontend/src/pages/Checkout.jsx`
- [Orders and messages](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/pages/MyOrders.jsx): `amfaye-bites/frontend/src/pages/MyOrders.jsx`
- [HTTP client](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/services/api.js): `amfaye-bites/frontend/src/services/api.js`

### API and domain

- [Express API](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/app.js): `amfaye-bites/backend/app.js`
- [Authentication routes](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/authRoutes.js): `amfaye-bites/backend/routes/authRoutes.js`
- [Product routes](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/productRoutes.js): `amfaye-bites/backend/routes/productRoutes.js`
- [Order routes](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/orderRoutes.js): `amfaye-bites/backend/routes/orderRoutes.js`
- [Payment routes](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/paymentRoutes.js): `amfaye-bites/backend/routes/paymentRoutes.js`
- [Review moderation](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/reviewRoutes.js): `amfaye-bites/backend/routes/reviewRoutes.js`
- [Order chat and images](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/chatRoutes.js): `amfaye-bites/backend/routes/chatRoutes.js`
- [Catalog and stock status](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/controllers/productController.js): `amfaye-bites/backend/controllers/productController.js`
- [Order and stock workflow](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/orderService.js): `amfaye-bites/backend/services/orderService.js`
- [Demo and cash payments](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/controllers/paymentController.js): `amfaye-bites/backend/controllers/paymentController.js`
- [Conversation service](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/chatService.js): `amfaye-bites/backend/services/chatService.js`
- [Chat image storage](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/chatImageService.js): `amfaye-bites/backend/services/chatImageService.js`
- [Order notifications](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/notificationService.js): `amfaye-bites/backend/services/notificationService.js`

### Persistent data

- [MongoDB](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/config/database.js): `amfaye-bites/backend/config/database.js`
- [Commerce records](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/models/index.js): `amfaye-bites/backend/models/index.js`
- [Chat records](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/models/ChatConversation.js): `amfaye-bites/backend/models/ChatConversation.js`
- [Image files](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/chatImageService.js): `amfaye-bites/backend/services/chatImageService.js`

### Staff operations

- [Staff workspace](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/frontend/src/pages/admin/Dashboard.jsx): `amfaye-bites/frontend/src/pages/admin/Dashboard.jsx`
- [Inventory routes](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/inventoryRoutes.js): `amfaye-bites/backend/routes/inventoryRoutes.js`
- [Preparation queue](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/routes/preparationRoutes.js): `amfaye-bites/backend/routes/preparationRoutes.js`
- [Reports service](https://github.com/dryn-23/amfaye-bites-web-base-system/blob/main/amfaye-bites/backend/services/reportService.js): `amfaye-bites/backend/services/reportService.js`

### Other components

- **Customer**
- **Admin or cashier**

## Connections

- Customer → Routed storefront: uses storefront
- Admin or cashier → Routed storefront: uses workspace
- Routed storefront → Browse and checkout: routes to
- Routed storefront → Orders and messages: routes to
- Routed storefront → Staff workspace: routes to
- Routed storefront → Auth and cart state: provides state
- Browse and checkout → HTTP client: requests data
- Orders and messages → HTTP client: requests data
- Staff workspace → HTTP client: requests data
- HTTP client → Express API: sends API requests
- Express API → Authentication routes: mounts
- Express API → Product routes: mounts
- Express API → Order routes: mounts
- Express API → Payment routes: mounts
- Express API → Inventory routes: mounts
- Express API → Preparation queue: mounts
- Express API → Review moderation: mounts
- Express API → Order chat and images: mounts
- Catalog and stock status → Commerce records: reads and writes
- Order and stock workflow → Commerce records: reads and writes
- Demo and cash payments → Order and stock workflow: records payment
- Demo and cash payments → Commerce records: reads and writes
- Order and stock workflow → Order notifications: notifies status
- Order chat and images → Conversation service: dispatches actions
- Order chat and images → Chat records: reads and writes
- Order chat and images → Chat image storage: stores images
- Chat image storage → Image files: stores files
- Conversation service → Chat records: reads and writes
- Commerce records → MongoDB: persists records
- Chat records → MongoDB: persists records
- Reports service → Commerce records: reads records
