# sifatahammed/vouge-nest architecture

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

## Overview

VougeNest is a full-stack commerce app: shoppers browse products, manage a cart, place orders, and review order history; administrators sign in to add products and manage the catalog and orders. The storefront context loads products and sends cart requests to the backend, whose server mounts user, product, cart, and order APIs. Controllers perform the sampled database operations, while product creation also uploads images to Cloudinary. The README documents Stripe/Razorpay payment support, but the sampled order handlers are empty; frontend page-to-endpoint wiring is not shown, so those links are omitted.

Main entry points: [`project-backend/server.js`](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/server.js) (API server), [`admin-frontend/src/App.jsx`](https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/App.jsx) (Admin routes), [`project-backend/models/userModel.js`](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/models/userModel.js) (User and cart model), [`project-frontend/src/context/ShopContext.jsx`](https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/context/ShopContext.jsx) (Shop state and API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Shopper storefront"]
  node_storefront_app["Storefront routes<br/>[App.jsx]"]
  node_shop_context["Shop state and API<br/>[ShopContext.jsx]"]
  node_catalog_pages["Catalog and product pages<br/>[Collection.jsx]"]
  node_cart_page["Cart<br/>[Cart.jsx]"]
  node_checkout_page["Checkout and orders<br/>[PlaceOrder.jsx]"]
end

subgraph group_admin["Admin panel"]
  node_admin_app["Admin routes<br/>[App.jsx]"]
  node_admin_login["Admin login<br/>[Login.jsx]"]
  node_admin_product_pages["Product management<br/>[Add.jsx]"]
  node_admin_order_page["Order management<br/>[Orders.jsx]"]
end

subgraph group_api["Backend API"]
  node_api_server["API server<br/>[server.js]"]
  node_user_routes["User routes<br/>[userRoute.js]"]
  node_product_routes["Product routes<br/>[productRoute.js]"]
  node_cart_routes["Cart routes<br/>[cartRoute.js]"]
  node_order_routes["Order routes<br/>[orderRoute.js]"]
  node_user_controller["User and admin auth<br/>[userController.js]"]
  node_product_controller["Product operations"]
  node_cart_controller["Cart operations<br/>[cartController.js]"]
  node_order_controller["Order operations<br/>[orderController.js]"]
  node_auth_middleware["Admin authorization<br/>[adminAuth.js]"]
end

subgraph group_commerce["Commerce data"]
  node_user_model["User and cart model<br/>[userModel.js]"]
  node_product_model["Product model<br/>[productModel.js]"]
  node_order_model["Order model<br/>[orderModel.js]"]
end

subgraph group_infra["External services"]
  node_mongo[("MongoDB<br/>[mongodb.js]")]
  node_cloudinary["Cloudinary images<br/>[cloudinary.js]"]
end

node_shopper(("Shopper"))
node_admin_user(("Administrator"))

node_shopper -->|"uses"| node_storefront_app
node_storefront_app -->|"provides state"| node_shop_context
node_shopper -->|"browses"| node_catalog_pages
node_shopper -->|"manages cart"| node_cart_page
node_shopper -->|"places and tracks"| node_checkout_page
node_shop_context -->|"requests products"| node_product_routes
node_shop_context -->|"sends cart requests"| node_cart_routes
node_admin_user -->|"uses"| node_admin_app
node_admin_app -->|"shows when signed out"| node_admin_login
node_admin_app -->|"routes to"| node_admin_product_pages
node_admin_app -->|"routes to"| node_admin_order_page
node_api_server -->|"mounts"| node_user_routes
node_api_server -->|"mounts"| node_product_routes
node_api_server -->|"mounts"| node_cart_routes
node_api_server -->|"mounts"| node_order_routes
node_product_controller -->|"reads and writes"| node_product_model
node_cart_controller -->|"reads and updates"| node_user_model
node_order_controller -->|"reads and writes"| node_order_model
node_order_controller -->|"clears cart"| node_user_model
node_user_controller -->|"reads and creates"| node_user_model
node_auth_middleware -->|"guards admin requests"| node_api_server
node_product_controller -->|"uploads images"| node_cloudinary
node_user_model -->|"persists through"| node_mongo
node_product_model -->|"persists through"| node_mongo
node_order_model -->|"persists through"| node_mongo

click node_storefront_app "https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/App.jsx"
click node_shop_context "https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/context/ShopContext.jsx"
click node_catalog_pages "https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/pages/Collection.jsx"
click node_cart_page "https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/pages/Cart.jsx"
click node_checkout_page "https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/pages/PlaceOrder.jsx"
click node_admin_app "https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/App.jsx"
click node_admin_login "https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/components/Login.jsx"
click node_admin_product_pages "https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/pages/Add.jsx"
click node_admin_order_page "https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/pages/Orders.jsx"
click node_api_server "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/server.js"
click node_user_routes "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/userRoute.js"
click node_product_routes "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/productRoute.js"
click node_cart_routes "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/cartRoute.js"
click node_order_routes "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/orderRoute.js"
click node_user_controller "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/userController.js"
click node_product_controller "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/productController.js"
click node_cart_controller "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/cartController.js"
click node_order_controller "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/orderController.js"
click node_auth_middleware "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/middleware/adminAuth.js"
click node_user_model "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/models/userModel.js"
click node_product_model "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/models/productModel.js"
click node_order_model "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/models/orderModel.js"
click node_mongo "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/config/mongodb.js"
click node_cloudinary "https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/config/cloudinary.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_storefront_app,node_shop_context,node_catalog_pages,node_cart_page,node_checkout_page toneBlue
class node_admin_app,node_admin_login,node_admin_product_pages,node_admin_order_page toneAmber
class node_api_server,node_user_routes,node_product_routes,node_cart_routes,node_order_routes,node_user_controller,node_product_controller,node_cart_controller,node_order_controller,node_auth_middleware toneMint
class node_user_model,node_product_model,node_order_model toneRose
class node_mongo,node_cloudinary,node_shopper,node_admin_user toneIndigo
```

## Components

### Shopper storefront

- [Storefront routes](https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/App.jsx): `project-frontend/src/App.jsx`
- [Shop state and API](https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/context/ShopContext.jsx): `project-frontend/src/context/ShopContext.jsx`
- [Catalog and product pages](https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/pages/Collection.jsx): `project-frontend/src/pages/Collection.jsx`
- [Cart](https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/pages/Cart.jsx): `project-frontend/src/pages/Cart.jsx`
- [Checkout and orders](https://github.com/sifatahammed/vouge-nest/blob/main/project-frontend/src/pages/PlaceOrder.jsx): `project-frontend/src/pages/PlaceOrder.jsx`

### Admin panel

- [Admin routes](https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/App.jsx): `admin-frontend/src/App.jsx`
- [Admin login](https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/components/Login.jsx): `admin-frontend/src/components/Login.jsx`
- [Product management](https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/pages/Add.jsx): `admin-frontend/src/pages/Add.jsx`
- [Order management](https://github.com/sifatahammed/vouge-nest/blob/main/admin-frontend/src/pages/Orders.jsx): `admin-frontend/src/pages/Orders.jsx`

### Backend API

- [API server](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/server.js): `project-backend/server.js`
- [User routes](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/userRoute.js): `project-backend/routes/userRoute.js`
- [Product routes](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/productRoute.js): `project-backend/routes/productRoute.js`
- [Cart routes](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/cartRoute.js): `project-backend/routes/cartRoute.js`
- [Order routes](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/routes/orderRoute.js): `project-backend/routes/orderRoute.js`
- [User and admin auth](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/userController.js): `project-backend/controllers/userController.js`
- [Product operations](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/productController.js): `project-backend/controllers/productController.js`
- [Cart operations](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/cartController.js): `project-backend/controllers/cartController.js`
- [Order operations](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/controllers/orderController.js): `project-backend/controllers/orderController.js`
- [Admin authorization](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/middleware/adminAuth.js): `project-backend/middleware/adminAuth.js`

### Commerce data

- [User and cart model](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/models/userModel.js): `project-backend/models/userModel.js`
- [Product model](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/models/productModel.js): `project-backend/models/productModel.js`
- [Order model](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/models/orderModel.js): `project-backend/models/orderModel.js`

### External services

- [MongoDB](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/config/mongodb.js): `project-backend/config/mongodb.js`
- [Cloudinary images](https://github.com/sifatahammed/vouge-nest/blob/main/project-backend/config/cloudinary.js): `project-backend/config/cloudinary.js`

### Other components

- **Shopper**
- **Administrator**

## Connections

- Shopper → Storefront routes: uses
- Storefront routes → Shop state and API: provides state
- Shopper → Catalog and product pages: browses
- Shopper → Cart: manages cart
- Shopper → Checkout and orders: places and tracks
- Shop state and API → Product routes: requests products
- Shop state and API → Cart routes: sends cart requests
- Administrator → Admin routes: uses
- Admin routes → Admin login: shows when signed out
- Admin routes → Product management: routes to
- Admin routes → Order management: routes to
- API server → User routes: mounts
- API server → Product routes: mounts
- API server → Cart routes: mounts
- API server → Order routes: mounts
- Product operations → Product model: reads and writes
- Cart operations → User and cart model: reads and updates
- Order operations → Order model: reads and writes
- Order operations → User and cart model: clears cart
- User and admin auth → User and cart model: reads and creates
- Admin authorization → API server: guards admin requests
- Product operations → Cloudinary images: uploads images
- User and cart model → MongoDB: persists through
- Product model → MongoDB: persists through
- Order model → MongoDB: persists through
