# jakariya-98/bamboo-chick architecture

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

- Interactive diagram: https://gitdiagram.com/jakariya-98/bamboo-chick
- Repository: https://github.com/jakariya-98/bamboo-chick

## Overview

Bamboo Chick is a role-based curtain e-commerce application. Buyers browse and configure products, keep a cart, receive server-priced checkout totals, place orders and track order slips; sellers manage orders, catalogue, offers, blogs and reports, while admins oversee users, reviews and manufacturer content. The graph combines the sampled client and order/review server code with README-described capabilities. Some page-to-API and route-to-controller connections are documented but their implementation details were not sampled.

Main entry points: [`bamboo-chick-app/server/src/controllers/orderController.js`](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/orderController.js) (Order lifecycle), [`bamboo-chick-app/server/src/routes/index.js`](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/routes/index.js) (API routing), [`bamboo-chick-app/client/src/api/client.js`](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/api/client.js) (API client), [`bamboo-chick-app/server/src/controllers/reviewController.js`](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/reviewController.js) (Review moderation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_buyer["Buyer storefront"]
  node_browse["Browse and configure"]
  node_cart["Cart<br/>[CartContext.jsx]"]
  node_checkout["Checkout<br/>[Checkout.jsx]"]
  node_ordersview["Order tracking"]
end

subgraph group_client["Client foundations"]
  node_clientapp["Routes and layouts<br/>[App.jsx]"]
  node_auth["Authentication<br/>[AuthContext.jsx]"]
  node_api["API client<br/>[client.js]"]
end

subgraph group_commerce["Commerce API"]
  node_server["HTTP application<br/>[app.js]"]
  node_routes["API routing<br/>[index.js]"]
  node_catalog["Product catalogue"]
  node_pricing["Pricing rules<br/>[pricing.js]"]
  node_orderctl["Order lifecycle<br/>[orderController.js]"]
  node_reviewctl["Review moderation"]
  node_authctl["Account endpoints<br/>[authController.js]"]
end

subgraph group_operations["Seller and admin"]
  node_ops["Seller and admin tools"]
  node_otherctl["Content and reporting"]
end

subgraph group_persistence["Persistence"]
  node_mongo[("MongoDB<br/>[db.js]")]
  node_productmodel[("Product records<br/>[Product.js]")]
  node_ordermodel[("Order records<br/>[Order.js]")]
  node_reviewmodel[("Review records<br/>[Review.js]")]
  node_settingsmodel[("Store settings<br/>[Setting.js]")]
  node_user[("User records<br/>[User.js]")]
end

node_buyer(("Buyer"))

node_buyer -->|"browses"| node_browse
node_browse -->|"adds items"| node_cart
node_cart -->|"submits cart"| node_checkout
node_checkout -->|"requests quote and order"| node_api
node_api -->|"calls API"| node_server
node_server -->|"mounts routes"| node_routes
node_routes -->|"routes orders"| node_orderctl
node_routes -->|"routes products"| node_catalog
node_routes -->|"routes reviews"| node_reviewctl
node_routes -->|"routes authentication"| node_authctl
node_orderctl -->|"calculates totals"| node_pricing
node_orderctl -->|"prices and reserves stock"| node_productmodel
node_orderctl -->|"creates and updates"| node_ordermodel
node_orderctl -->|"loads settings"| node_settingsmodel
node_orderctl -->|"generates order numbers"| node_otherctl
node_catalog -->|"reads catalogue"| node_productmodel
node_reviewctl -->|"reads and writes"| node_reviewmodel
node_reviewctl -->|"checks product"| node_productmodel
node_authctl -->|"authenticates users"| node_user
node_clientapp -->|"routes storefront"| node_browse
node_clientapp -->|"routes dashboards"| node_ops
node_auth -->|"calls auth endpoints"| node_api
node_ops -.->|"manages commerce"| node_api
node_otherctl -.->|"uses MongoDB"| node_mongo

click node_browse "https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/client/src/pages"
click node_cart "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/context/CartContext.jsx"
click node_checkout "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/pages/Checkout.jsx"
click node_ordersview "https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/client/src/pages"
click node_clientapp "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/App.jsx"
click node_auth "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/context/AuthContext.jsx"
click node_api "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/api/client.js"
click node_server "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/app.js"
click node_routes "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/routes/index.js"
click node_catalog "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/productController.js"
click node_pricing "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/utils/pricing.js"
click node_orderctl "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/orderController.js"
click node_reviewctl "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/reviewController.js"
click node_authctl "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/authController.js"
click node_ops "https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/client/src/pages"
click node_otherctl "https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/server/src/controllers"
click node_mongo "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/config/db.js"
click node_productmodel "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Product.js"
click node_ordermodel "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Order.js"
click node_reviewmodel "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Review.js"
click node_settingsmodel "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Setting.js"
click node_user "https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/User.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_browse,node_cart,node_checkout,node_ordersview toneBlue
class node_clientapp,node_auth,node_api toneAmber
class node_server,node_routes,node_catalog,node_pricing,node_orderctl,node_reviewctl,node_authctl toneMint
class node_ops,node_otherctl toneRose
class node_mongo,node_productmodel,node_ordermodel,node_reviewmodel,node_settingsmodel,node_user,node_buyer toneIndigo
```

## Components

### Buyer storefront

- [Browse and configure](https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/client/src/pages): `bamboo-chick-app/client/src/pages`
- [Cart](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/context/CartContext.jsx): `bamboo-chick-app/client/src/context/CartContext.jsx`
- [Checkout](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/pages/Checkout.jsx): `bamboo-chick-app/client/src/pages/Checkout.jsx`
- [Order tracking](https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/client/src/pages): `bamboo-chick-app/client/src/pages`

### Client foundations

- [Routes and layouts](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/App.jsx): `bamboo-chick-app/client/src/App.jsx`
- [Authentication](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/context/AuthContext.jsx): `bamboo-chick-app/client/src/context/AuthContext.jsx`
- [API client](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/client/src/api/client.js): `bamboo-chick-app/client/src/api/client.js`

### Commerce API

- [HTTP application](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/app.js): `bamboo-chick-app/server/src/app.js`
- [API routing](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/routes/index.js): `bamboo-chick-app/server/src/routes/index.js`
- [Product catalogue](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/productController.js): `bamboo-chick-app/server/src/controllers/productController.js`
- [Pricing rules](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/utils/pricing.js): `bamboo-chick-app/server/src/utils/pricing.js`
- [Order lifecycle](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/orderController.js): `bamboo-chick-app/server/src/controllers/orderController.js`
- [Review moderation](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/reviewController.js): `bamboo-chick-app/server/src/controllers/reviewController.js`
- [Account endpoints](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/controllers/authController.js): `bamboo-chick-app/server/src/controllers/authController.js`

### Seller and admin

- [Seller and admin tools](https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/client/src/pages): `bamboo-chick-app/client/src/pages`
- [Content and reporting](https://github.com/jakariya-98/bamboo-chick/tree/main/bamboo-chick-app/server/src/controllers): `bamboo-chick-app/server/src/controllers`

### Persistence

- [MongoDB](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/config/db.js): `bamboo-chick-app/server/src/config/db.js`
- [Product records](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Product.js): `bamboo-chick-app/server/src/models/Product.js`
- [Order records](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Order.js): `bamboo-chick-app/server/src/models/Order.js`
- [Review records](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Review.js): `bamboo-chick-app/server/src/models/Review.js`
- [Store settings](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/Setting.js): `bamboo-chick-app/server/src/models/Setting.js`
- [User records](https://github.com/jakariya-98/bamboo-chick/blob/main/bamboo-chick-app/server/src/models/User.js): `bamboo-chick-app/server/src/models/User.js`

### Other components

- **Buyer**

## Connections

- Buyer → Browse and configure: browses
- Browse and configure → Cart: adds items (evidence: `bamboo-chick-app/client/src/pages/ProductDetail.jsx`)
- Cart → Checkout: submits cart (evidence: `bamboo-chick-app/client/src/pages/Checkout.jsx`)
- Checkout → API client: requests quote and order (evidence: `bamboo-chick-app/client/src/pages/Checkout.jsx`)
- API client → HTTP application: calls API (evidence: `bamboo-chick-app/client/src/api/client.js`)
- HTTP application → API routing: mounts routes (evidence: `bamboo-chick-app/server/src/app.js`)
- API routing → Order lifecycle: routes orders (evidence: `bamboo-chick-app/server/src/routes/index.js`)
- API routing → Product catalogue: routes products (evidence: `bamboo-chick-app/server/src/routes/index.js`)
- API routing → Review moderation: routes reviews (evidence: `bamboo-chick-app/server/src/routes/index.js`)
- API routing → Account endpoints: routes authentication (evidence: `bamboo-chick-app/server/src/routes/index.js`)
- Order lifecycle → Pricing rules: calculates totals (evidence: `bamboo-chick-app/server/src/controllers/orderController.js`)
- Order lifecycle → Product records: prices and reserves stock (evidence: `bamboo-chick-app/server/src/controllers/orderController.js`)
- Order lifecycle → Order records: creates and updates (evidence: `bamboo-chick-app/server/src/controllers/orderController.js`)
- Order lifecycle → Store settings: loads settings (evidence: `bamboo-chick-app/server/src/controllers/orderController.js`)
- Order lifecycle → Content and reporting: generates order numbers (evidence: `bamboo-chick-app/server/src/controllers/orderController.js`)
- Product catalogue → Product records: reads catalogue (evidence: `bamboo-chick-app/server/src/controllers/productController.js`)
- Review moderation → Review records: reads and writes (evidence: `bamboo-chick-app/server/src/controllers/reviewController.js`)
- Review moderation → Product records: checks product (evidence: `bamboo-chick-app/server/src/controllers/reviewController.js`)
- Account endpoints → User records: authenticates users (evidence: `bamboo-chick-app/server/src/controllers/authController.js`)
- Routes and layouts → Browse and configure: routes storefront (evidence: `bamboo-chick-app/client/src/App.jsx`)
- Routes and layouts → Seller and admin tools: routes dashboards (evidence: `bamboo-chick-app/client/src/App.jsx`)
- Authentication → API client: calls auth endpoints (evidence: `bamboo-chick-app/client/src/context/AuthContext.jsx`)
- Seller and admin tools → API client: manages commerce (evidence: `bamboo-chick-app/client/src/pages/ProductDetail.jsx`)
- Content and reporting → MongoDB: uses MongoDB
