# megumi-08/moises architecture

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

- Interactive diagram: https://gitdiagram.com/megumi-08/moises
- Repository: https://github.com/megumi-08/moises

## Overview

This is a fashion and beauty storefront with customer accounts, product discovery, cart/checkout, reviews, wishlists, an AI stylist, and administration. The principal flow is browsing and filtering products, viewing details, adding items to a cart, checking out, and tracking orders; account and admin paths provide separate supporting workflows. The backend is an Express API backed by MongoDB, with Stripe and AI integrations represented as distinct capabilities. Some controllers, routes, and frontend screens are unsampled, so their internal call wiring is not inferred.

Main entry points: [`frontend/src/App.jsx`](https://github.com/megumi-08/moises/blob/main/frontend/src/App.jsx) (App routing), [`backend/server.js`](https://github.com/megumi-08/moises/blob/main/backend/server.js) (Express server), [`backend/controllers/orderController.js`](https://github.com/megumi-08/moises/blob/main/backend/controllers/orderController.js) (Order operations), [`backend/models/Product.js`](https://github.com/megumi-08/moises/blob/main/backend/models/Product.js) (Product records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_app["App routing<br/>[App.jsx]"]
  node_catalog_ui["Product browsing<br/>[ProductList.jsx]"]
  node_details_ui["Product details<br/>[ProductDetails.jsx]"]
  node_cart_ui["Cart<br/>[Cart.jsx]"]
  node_checkout_ui["Checkout<br/>[Checkout.jsx]"]
  node_reviews_ui["Product reviews<br/>[ProductReviews.jsx]"]
  node_redux["Redux store<br/>[store.js]"]
end

subgraph group_customer["Customer features"]
  node_wishlist_ui["Wishlist<br/>[Wishlist.jsx]"]
  node_account_ui["Account portal<br/>[Account.jsx]"]
  node_stylist_ui["AI stylist<br/>[AiStylist.jsx]"]
  node_admin_ui["Admin dashboard<br/>[AdminDashboard.jsx]"]
end

subgraph group_commerce["Commerce API"]
  node_products_api["Product routes<br/>[productRoutes.js]"]
  node_product_controller["Product operations"]
  node_orders_api["Order routes<br/>[orderRoutes.js]"]
  node_order_controller["Order operations<br/>[orderController.js]"]
  node_stripe_api["Stripe routes<br/>[stripeRoutes.js]"]
  node_ai_api["Stylist routes<br/>[aiRoutes.js]"]
  node_server["Express server<br/>[server.js]"]
end

subgraph group_identity["Identity and admin"]
  node_auth_api["Auth routes<br/>[authRoutes.js]"]
  node_auth_controller["Authentication<br/>[authController.js]"]
  node_users_api["User routes<br/>[userRoutes.js]"]
  node_admin_api["Admin routes<br/>[adminRoutes.js]"]
  node_wishlist_api["Wishlist routes<br/>[wishlistRoutes.js]"]
end

subgraph group_persistence["MongoDB data"]
  node_product_model[("Product records<br/>[Product.js]")]
  node_order_model[("Order records<br/>[Order.js]")]
  node_user_model[("User records<br/>[User.js]")]
  node_wishlist_model[("Wishlist records<br/>[Wishlist.js]")]
end

node_shopper(("Shopper"))
node_mongo[("MongoDB")]
node_stripe{{"Stripe"}}
node_ai_service{{"AI service"}}

node_shopper -->|"uses"| node_app
node_app -->|"routes to"| node_catalog_ui
node_app -->|"routes to"| node_details_ui
node_app -->|"routes to"| node_cart_ui
node_app -->|"routes to"| node_checkout_ui
node_app -->|"routes to"| node_reviews_ui
node_app -->|"routes to"| node_wishlist_ui
node_app -->|"routes to"| node_account_ui
node_app -->|"routes to"| node_stylist_ui
node_app -->|"routes to"| node_admin_ui
node_reviews_ui -->|"dispatches review"| node_redux
node_server -->|"mounts"| node_products_api
node_server -->|"mounts"| node_orders_api
node_server -->|"mounts"| node_stripe_api
node_server -->|"mounts"| node_ai_api
node_server -->|"mounts"| node_auth_api
node_server -->|"mounts"| node_users_api
node_server -->|"mounts"| node_admin_api
node_server -->|"mounts"| node_wishlist_api
node_products_api -->|"dispatches"| node_product_controller
node_product_controller -->|"reads and writes"| node_product_model
node_orders_api -->|"dispatches"| node_order_controller
node_order_controller -->|"reads and writes"| node_order_model
node_order_controller -->|"adjusts stock"| node_product_model
node_auth_api -->|"dispatches"| node_auth_controller
node_auth_controller -->|"reads and writes"| node_user_model
node_product_model -->|"persists in"| node_mongo
node_order_model -->|"persists in"| node_mongo
node_user_model -->|"persists in"| node_mongo
node_wishlist_model -->|"persists in"| node_mongo
node_stripe_api -.->|"integrates"| node_stripe
node_ai_api -.->|"integrates"| node_ai_service

click node_app "https://github.com/megumi-08/moises/blob/main/frontend/src/App.jsx"
click node_catalog_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/ProductList.jsx"
click node_details_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/ProductDetails.jsx"
click node_cart_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/Cart.jsx"
click node_checkout_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/Checkout.jsx"
click node_reviews_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/ProductReviews.jsx"
click node_wishlist_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/Wishlist.jsx"
click node_account_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/Account.jsx"
click node_stylist_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/components/AiStylist.jsx"
click node_admin_ui "https://github.com/megumi-08/moises/blob/main/frontend/src/admin/AdminDashboard.jsx"
click node_redux "https://github.com/megumi-08/moises/blob/main/frontend/src/redux/store.js"
click node_products_api "https://github.com/megumi-08/moises/blob/main/backend/routes/productRoutes.js"
click node_product_controller "https://github.com/megumi-08/moises/blob/main/backend/controllers/productController.js"
click node_orders_api "https://github.com/megumi-08/moises/blob/main/backend/routes/orderRoutes.js"
click node_order_controller "https://github.com/megumi-08/moises/blob/main/backend/controllers/orderController.js"
click node_stripe_api "https://github.com/megumi-08/moises/blob/main/backend/routes/stripeRoutes.js"
click node_ai_api "https://github.com/megumi-08/moises/blob/main/backend/routes/aiRoutes.js"
click node_auth_api "https://github.com/megumi-08/moises/blob/main/backend/routes/authRoutes.js"
click node_auth_controller "https://github.com/megumi-08/moises/blob/main/backend/controllers/authController.js"
click node_users_api "https://github.com/megumi-08/moises/blob/main/backend/routes/userRoutes.js"
click node_admin_api "https://github.com/megumi-08/moises/blob/main/backend/routes/adminRoutes.js"
click node_wishlist_api "https://github.com/megumi-08/moises/blob/main/backend/routes/wishlistRoutes.js"
click node_server "https://github.com/megumi-08/moises/blob/main/backend/server.js"
click node_product_model "https://github.com/megumi-08/moises/blob/main/backend/models/Product.js"
click node_order_model "https://github.com/megumi-08/moises/blob/main/backend/models/Order.js"
click node_user_model "https://github.com/megumi-08/moises/blob/main/backend/models/User.js"
click node_wishlist_model "https://github.com/megumi-08/moises/blob/main/backend/models/Wishlist.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_app,node_catalog_ui,node_details_ui,node_cart_ui,node_checkout_ui,node_reviews_ui,node_redux toneBlue
class node_wishlist_ui,node_account_ui,node_stylist_ui,node_admin_ui,node_mongo toneAmber
class node_products_api,node_product_controller,node_orders_api,node_order_controller,node_stripe_api,node_ai_api,node_server toneMint
class node_auth_api,node_auth_controller,node_users_api,node_admin_api,node_wishlist_api toneRose
class node_product_model,node_order_model,node_user_model,node_wishlist_model,node_shopper,node_stripe,node_ai_service toneIndigo
```

## Components

### Storefront

- [App routing](https://github.com/megumi-08/moises/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Product browsing](https://github.com/megumi-08/moises/blob/main/frontend/src/components/ProductList.jsx): `frontend/src/components/ProductList.jsx`
- [Product details](https://github.com/megumi-08/moises/blob/main/frontend/src/components/ProductDetails.jsx): `frontend/src/components/ProductDetails.jsx`
- [Cart](https://github.com/megumi-08/moises/blob/main/frontend/src/components/Cart.jsx): `frontend/src/components/Cart.jsx`
- [Checkout](https://github.com/megumi-08/moises/blob/main/frontend/src/components/Checkout.jsx): `frontend/src/components/Checkout.jsx`
- [Product reviews](https://github.com/megumi-08/moises/blob/main/frontend/src/components/ProductReviews.jsx): `frontend/src/components/ProductReviews.jsx`
- [Redux store](https://github.com/megumi-08/moises/blob/main/frontend/src/redux/store.js): `frontend/src/redux/store.js`

### Customer features

- [Wishlist](https://github.com/megumi-08/moises/blob/main/frontend/src/components/Wishlist.jsx): `frontend/src/components/Wishlist.jsx`
- [Account portal](https://github.com/megumi-08/moises/blob/main/frontend/src/components/Account.jsx): `frontend/src/components/Account.jsx`
- [AI stylist](https://github.com/megumi-08/moises/blob/main/frontend/src/components/AiStylist.jsx): `frontend/src/components/AiStylist.jsx`
- [Admin dashboard](https://github.com/megumi-08/moises/blob/main/frontend/src/admin/AdminDashboard.jsx): `frontend/src/admin/AdminDashboard.jsx`

### Commerce API

- [Product routes](https://github.com/megumi-08/moises/blob/main/backend/routes/productRoutes.js): `backend/routes/productRoutes.js`
- [Product operations](https://github.com/megumi-08/moises/blob/main/backend/controllers/productController.js): `backend/controllers/productController.js`
- [Order routes](https://github.com/megumi-08/moises/blob/main/backend/routes/orderRoutes.js): `backend/routes/orderRoutes.js`
- [Order operations](https://github.com/megumi-08/moises/blob/main/backend/controllers/orderController.js): `backend/controllers/orderController.js`
- [Stripe routes](https://github.com/megumi-08/moises/blob/main/backend/routes/stripeRoutes.js): `backend/routes/stripeRoutes.js`
- [Stylist routes](https://github.com/megumi-08/moises/blob/main/backend/routes/aiRoutes.js): `backend/routes/aiRoutes.js`
- [Express server](https://github.com/megumi-08/moises/blob/main/backend/server.js): `backend/server.js`

### Identity and admin

- [Auth routes](https://github.com/megumi-08/moises/blob/main/backend/routes/authRoutes.js): `backend/routes/authRoutes.js`
- [Authentication](https://github.com/megumi-08/moises/blob/main/backend/controllers/authController.js): `backend/controllers/authController.js`
- [User routes](https://github.com/megumi-08/moises/blob/main/backend/routes/userRoutes.js): `backend/routes/userRoutes.js`
- [Admin routes](https://github.com/megumi-08/moises/blob/main/backend/routes/adminRoutes.js): `backend/routes/adminRoutes.js`
- [Wishlist routes](https://github.com/megumi-08/moises/blob/main/backend/routes/wishlistRoutes.js): `backend/routes/wishlistRoutes.js`

### MongoDB data

- [Product records](https://github.com/megumi-08/moises/blob/main/backend/models/Product.js): `backend/models/Product.js`
- [Order records](https://github.com/megumi-08/moises/blob/main/backend/models/Order.js): `backend/models/Order.js`
- [User records](https://github.com/megumi-08/moises/blob/main/backend/models/User.js): `backend/models/User.js`
- [Wishlist records](https://github.com/megumi-08/moises/blob/main/backend/models/Wishlist.js): `backend/models/Wishlist.js`

### Other components

- **Shopper**
- **MongoDB**
- **Stripe**
- **AI service**

## Connections

- Shopper → App routing: uses
- App routing → Product browsing: routes to
- App routing → Product details: routes to
- App routing → Cart: routes to
- App routing → Checkout: routes to
- App routing → Product reviews: routes to
- App routing → Wishlist: routes to
- App routing → Account portal: routes to
- App routing → AI stylist: routes to
- App routing → Admin dashboard: routes to
- Product reviews → Redux store: dispatches review
- Express server → Product routes: mounts
- Express server → Order routes: mounts
- Express server → Stripe routes: mounts
- Express server → Stylist routes: mounts
- Express server → Auth routes: mounts
- Express server → User routes: mounts
- Express server → Admin routes: mounts
- Express server → Wishlist routes: mounts
- Product routes → Product operations: dispatches
- Product operations → Product records: reads and writes
- Order routes → Order operations: dispatches
- Order operations → Order records: reads and writes
- Order operations → Product records: adjusts stock
- Auth routes → Authentication: dispatches
- Authentication → User records: reads and writes
- Product records → MongoDB: persists in
- Order records → MongoDB: persists in
- User records → MongoDB: persists in
- Wishlist records → MongoDB: persists in
- Stripe routes → Stripe: integrates
- Stylist routes → AI service: integrates
