# namitrohekar/compatx architecture

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

## Overview

CompatX is a full-stack e-commerce platform. Customers browse products, manage a cart, check out, pay, and track orders; administrators manage products, categories, orders, and sales analytics. The map includes the documented React-to-Spring API architecture and sampled authentication, product, order, and payment behavior. Some controller and frontend service wiring is represented by documented responsibilities; unsampled details are not expanded.

Main entry points: [`compatX-frontend/src/lib/axiosClient.js`](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/lib/axiosClient.js) (HTTP client), [`compatX-frontend/src/main.jsx`](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/main.jsx) (App routes), [`compatx-backend/src/main/java/com/namit/controllers/UserOrderController.java`](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/UserOrderController.java) (Customer order API), [`compatX-frontend/src/pages/customer/Checkout.jsx`](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Checkout.jsx) (Checkout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer shopping"]
  node_catalog["Product browsing<br/>[ProductGallery.jsx]"]
  node_productdetails["Product details"]
  node_cart["Shopping cart<br/>[Cart.jsx]"]
  node_checkout["Checkout<br/>[Checkout.jsx]"]
  node_customerorders["Order tracking<br/>[Orders.jsx]"]
  node_profile["Customer profile<br/>[Profile.jsx]"]
end

subgraph group_admin["Admin operations"]
  node_dashboard["Admin dashboard<br/>[AdminDashboard.jsx]"]
  node_adminproducts["Product management<br/>[ProductList.jsx]"]
  node_categories["Category management<br/>[CategoryList.jsx]"]
  node_adminorders["Order management<br/>[AdminOrders.jsx]"]
  node_analytics["Order analytics<br/>[OrderAnalytics.jsx]"]
end

subgraph group_frontend["Frontend runtime"]
  node_router["App routes<br/>[main.jsx]"]
  node_http["HTTP client<br/>[axiosClient.js]"]
  node_cartservice["Cart API service<br/>[cartService.js]"]
  node_orderservice["Order API service<br/>[orderService.js]"]
  node_paymentservice["Payment API service<br/>[paymentService.js]"]
  node_adminproductservice["Admin product API"]
end

subgraph group_backend["Backend application"]
  node_productcontroller["Product API"]
  node_productservice["Product logic"]
  node_productdata[("Product catalog data")]
  node_cartcontroller["Cart API"]
  node_ordercontroller["Customer order API"]
  node_adminordercontroller["Admin order API"]
  node_orders["Order logic<br/>[OrderService.java]"]
  node_orderdata[("Order data")]
  node_paymentcontroller["Payment API"]
  node_paymentlogic["Payment integrations"]
end

subgraph group_security["Identity and access"]
  node_authstore["Auth state<br/>[useAuthStore.js]"]
  node_authcontroller["Authentication API"]
  node_refreshtokens["Refresh token service"]
  node_authdata[("User and token data")]
end

node_shopper(("Shopper"))
node_administrator(("Administrator"))
node_stripe(("Stripe"))

node_shopper -->|"uses"| node_router
node_administrator -->|"uses"| node_router
node_router -->|"routes to"| node_catalog
node_router -->|"routes to"| node_productdetails
node_router -->|"routes to"| node_cart
node_router -->|"routes to"| node_checkout
node_router -->|"routes to"| node_customerorders
node_router -->|"routes to"| node_profile
node_router -->|"routes to"| node_dashboard
node_router -->|"routes to"| node_adminproducts
node_router -->|"routes to"| node_categories
node_router -->|"routes to"| node_adminorders
node_router -->|"routes to"| node_analytics
node_catalog -->|"requests catalog"| node_http
node_productdetails -->|"requests product"| node_http
node_cart -->|"uses"| node_cartservice
node_cartservice -->|"sends requests"| node_http
node_checkout -->|"places orders"| node_orderservice
node_checkout -->|"starts payment"| node_paymentservice
node_customerorders -->|"retrieves orders"| node_orderservice
node_profile -->|"requests profile"| node_http
node_adminproducts -->|"uses"| node_adminproductservice
node_adminproductservice -->|"sends requests"| node_http
node_dashboard -->|"requests metrics"| node_http
node_categories -->|"requests categories"| node_http
node_adminorders -->|"requests orders"| node_http
node_analytics -->|"requests analytics"| node_http
node_authstore -->|"refreshes token"| node_authcontroller
node_http -->|"uses auth state"| node_authstore
node_http -->|"calls API"| node_productcontroller
node_http -->|"calls API"| node_cartcontroller
node_http -->|"calls API"| node_ordercontroller
node_http -->|"calls API"| node_adminordercontroller
node_http -->|"calls API"| node_paymentcontroller
node_http -->|"calls API"| node_authcontroller
node_http -.->|"calls API"| node_categories
node_adminproductservice -->|"calls API"| node_productcontroller
node_authcontroller -->|"manages refresh tokens"| node_refreshtokens
node_refreshtokens -->|"reads and writes"| node_authdata
node_productcontroller -->|"delegates"| node_productservice
node_productservice -->|"queries and saves"| node_productdata
node_cartcontroller -.->|"delegates cart orders"| node_orders
node_ordercontroller -->|"delegates"| node_orders
node_adminordercontroller -->|"delegates"| node_orders
node_orderservice -->|"calls API"| node_ordercontroller
node_ordercontroller -.->|"reads and writes"| node_orderdata
node_paymentcontroller -->|"creates and verifies payments"| node_paymentlogic
node_paymentcontroller -->|"verifies order ownership"| node_orderdata

click node_router "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/main.jsx"
click node_catalog "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/ProductGallery.jsx"
click node_productdetails "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/ProductsDetails.jsx"
click node_cart "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Cart.jsx"
click node_checkout "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Checkout.jsx"
click node_customerorders "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Orders.jsx"
click node_profile "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Profile.jsx"
click node_dashboard "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/AdminDashboard.jsx"
click node_adminproducts "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/ProductList.jsx"
click node_categories "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/CategoryList.jsx"
click node_adminorders "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/AdminOrders.jsx"
click node_analytics "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/OrderAnalytics.jsx"
click node_http "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/lib/axiosClient.js"
click node_cartservice "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/cartService.js"
click node_orderservice "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/orderService.js"
click node_paymentservice "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/paymentService.js"
click node_adminproductservice "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/adminProductService.js"
click node_authstore "https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/stores/useAuthStore.js"
click node_authcontroller "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/AuthController.java"
click node_refreshtokens "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/security/jwt/RefreshTokenService.java"
click node_authdata "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/repositories/RefreshTokenRepository.java"
click node_productcontroller "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/ProductController.java"
click node_productservice "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/services/ProductService.java"
click node_productdata "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/repositories/ProductRepository.java"
click node_cartcontroller "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/CartController.java"
click node_ordercontroller "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/UserOrderController.java"
click node_adminordercontroller "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/AdminOrderController.java"
click node_orders "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/services/OrderService.java"
click node_orderdata "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/repositories/OrderRepository.java"
click node_paymentcontroller "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/PaymentController.java"
click node_paymentlogic "https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/services/PaymentService.java"

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_catalog,node_productdetails,node_cart,node_checkout,node_customerorders,node_profile toneBlue
class node_dashboard,node_adminproducts,node_categories,node_adminorders,node_analytics toneAmber
class node_router,node_http,node_cartservice,node_orderservice,node_paymentservice,node_adminproductservice toneMint
class node_productcontroller,node_productservice,node_productdata,node_cartcontroller,node_ordercontroller,node_adminordercontroller,node_orders,node_orderdata,node_paymentcontroller,node_paymentlogic toneRose
class node_authstore,node_authcontroller,node_refreshtokens,node_authdata,node_shopper,node_administrator,node_stripe toneIndigo
```

## Components

### Customer shopping

- [Product browsing](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/ProductGallery.jsx): `compatX-frontend/src/pages/customer/ProductGallery.jsx`
- [Product details](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/ProductsDetails.jsx): `compatX-frontend/src/pages/customer/ProductsDetails.jsx`
- [Shopping cart](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Cart.jsx): `compatX-frontend/src/pages/customer/Cart.jsx`
- [Checkout](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Checkout.jsx): `compatX-frontend/src/pages/customer/Checkout.jsx`
- [Order tracking](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Orders.jsx): `compatX-frontend/src/pages/customer/Orders.jsx`
- [Customer profile](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/customer/Profile.jsx): `compatX-frontend/src/pages/customer/Profile.jsx`

### Admin operations

- [Admin dashboard](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/AdminDashboard.jsx): `compatX-frontend/src/pages/admin/AdminDashboard.jsx`
- [Product management](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/ProductList.jsx): `compatX-frontend/src/pages/admin/ProductList.jsx`
- [Category management](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/CategoryList.jsx): `compatX-frontend/src/pages/admin/CategoryList.jsx`
- [Order management](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/AdminOrders.jsx): `compatX-frontend/src/pages/admin/AdminOrders.jsx`
- [Order analytics](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/pages/admin/OrderAnalytics.jsx): `compatX-frontend/src/pages/admin/OrderAnalytics.jsx`

### Frontend runtime

- [App routes](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/main.jsx): `compatX-frontend/src/main.jsx`
- [HTTP client](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/lib/axiosClient.js): `compatX-frontend/src/lib/axiosClient.js`
- [Cart API service](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/cartService.js): `compatX-frontend/src/services/cartService.js`
- [Order API service](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/orderService.js): `compatX-frontend/src/services/orderService.js`
- [Payment API service](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/paymentService.js): `compatX-frontend/src/services/paymentService.js`
- [Admin product API](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/services/adminProductService.js): `compatX-frontend/src/services/adminProductService.js`

### Backend application

- [Product API](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/ProductController.java): `compatx-backend/src/main/java/com/namit/controllers/ProductController.java`
- [Product logic](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/services/ProductService.java): `compatx-backend/src/main/java/com/namit/services/ProductService.java`
- [Product catalog data](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/repositories/ProductRepository.java): `compatx-backend/src/main/java/com/namit/repositories/ProductRepository.java`
- [Cart API](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/CartController.java): `compatx-backend/src/main/java/com/namit/controllers/CartController.java`
- [Customer order API](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/UserOrderController.java): `compatx-backend/src/main/java/com/namit/controllers/UserOrderController.java`
- [Admin order API](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/AdminOrderController.java): `compatx-backend/src/main/java/com/namit/controllers/AdminOrderController.java`
- [Order logic](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/services/OrderService.java): `compatx-backend/src/main/java/com/namit/services/OrderService.java`
- [Order data](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/repositories/OrderRepository.java): `compatx-backend/src/main/java/com/namit/repositories/OrderRepository.java`
- [Payment API](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/PaymentController.java): `compatx-backend/src/main/java/com/namit/controllers/PaymentController.java`
- [Payment integrations](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/services/PaymentService.java): `compatx-backend/src/main/java/com/namit/services/PaymentService.java`

### Identity and access

- [Auth state](https://github.com/namitrohekar/compatx/blob/main/compatX-frontend/src/stores/useAuthStore.js): `compatX-frontend/src/stores/useAuthStore.js`
- [Authentication API](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/controllers/AuthController.java): `compatx-backend/src/main/java/com/namit/controllers/AuthController.java`
- [Refresh token service](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/security/jwt/RefreshTokenService.java): `compatx-backend/src/main/java/com/namit/security/jwt/RefreshTokenService.java`
- [User and token data](https://github.com/namitrohekar/compatx/blob/main/compatx-backend/src/main/java/com/namit/repositories/RefreshTokenRepository.java): `compatx-backend/src/main/java/com/namit/repositories/RefreshTokenRepository.java`

### Other components

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

## Connections

- Shopper → App routes: uses
- Administrator → App routes: uses
- App routes → Product browsing: routes to
- App routes → Product details: routes to
- App routes → Shopping cart: routes to
- App routes → Checkout: routes to
- App routes → Order tracking: routes to
- App routes → Customer profile: routes to
- App routes → Admin dashboard: routes to
- App routes → Product management: routes to
- App routes → Category management: routes to
- App routes → Order management: routes to
- App routes → Order analytics: routes to
- Product browsing → HTTP client: requests catalog
- Product details → HTTP client: requests product
- Shopping cart → Cart API service: uses
- Cart API service → HTTP client: sends requests
- Checkout → Order API service: places orders
- Checkout → Payment API service: starts payment
- Order tracking → Order API service: retrieves orders
- Customer profile → HTTP client: requests profile
- Product management → Admin product API: uses
- Admin product API → HTTP client: sends requests
- Admin dashboard → HTTP client: requests metrics
- Category management → HTTP client: requests categories
- Order management → HTTP client: requests orders
- Order analytics → HTTP client: requests analytics
- Auth state → Authentication API: refreshes token
- HTTP client → Auth state: uses auth state
- HTTP client → Product API: calls API
- HTTP client → Cart API: calls API
- HTTP client → Customer order API: calls API
- HTTP client → Admin order API: calls API
- HTTP client → Payment API: calls API
- HTTP client → Authentication API: calls API
- HTTP client → Category management: calls API
- Admin product API → Product API: calls API
- Authentication API → Refresh token service: manages refresh tokens
- Refresh token service → User and token data: reads and writes
- Product API → Product logic: delegates
- Product logic → Product catalog data: queries and saves
- Cart API → Order logic: delegates cart orders
- Customer order API → Order logic: delegates
- Admin order API → Order logic: delegates
- Order API service → Customer order API: calls API
- Customer order API → Order data: reads and writes
- Payment API → Payment integrations: creates and verifies payments
- Payment API → Order data: verifies order ownership
