# abinashpanigrahi/ecommerce-springboot-backend-project architecture

> Architecture diagram of the GitHub repository abinashpanigrahi/ecommerce-springboot-backend-project, 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/abinashpanigrahi/ecommerce-springboot-backend-project
- Repository: https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project

## Overview

This is a Spring Boot REST backend for an e-commerce application. Customers and sellers register or log in to obtain session tokens; authenticated API requests then manage profiles, product listings, carts, and orders. The principal shopping flow spans product discovery, cart changes, and order placement, while sellers maintain the catalog and administrators can inspect customer and order data. The README documents these capabilities, but sampled code does not show the cart and order implementations’ internal coordination, so those links are not inferred. Persistence wiring is represented at the repository layer; individual implementation calls were not sampled.

Main entry points: [`E-Commerce-Backend/src/main/java/com/masai/repository`](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/tree/main/E-Commerce-Backend/src/main/java/com/masai/repository) (Data repositories), [`E-Commerce-Backend/src/main/java/com/masai/exception/GlobalExceptionHandler.java`](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/exception/GlobalExceptionHandler.java) (Error handling), [`E-Commerce-Backend/src/main/java/com/masai/controller/LoginController.java`](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/LoginController.java) (Login API), [`E-Commerce-Backend/src/main/java/com/masai/controller/CartController.java`](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/CartController.java) (Cart API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_login_api["Login API"]
  node_customer_api["Customer API"]
  node_seller_api["Seller API"]
  node_product_api["Product API"]
  node_cart_api["Cart API"]
  node_order_api["Order API"]
  node_error_handler["Error handling"]
end

subgraph group_identity["Accounts and sessions"]
  node_session_service["Session service"]
  node_customer_service["Customer service"]
  node_seller_service["Seller service"]
end

subgraph group_commerce["Store operations"]
  node_product_service["Product service"]
  node_cart_service["Cart service"]
  node_cart_item_service["Cart item service"]
  node_order_service["Order service"]
end

subgraph group_persistence["Persistence"]
  node_repositories["Data repositories"]
  node_mysql[("MySQL database")]
end

node_customer(("Customer"))
node_seller(("Seller"))

node_customer -->|"registers or logs in"| node_login_api
node_seller -->|"registers or logs in"| node_login_api
node_customer -->|"manages account"| node_customer_api
node_seller -->|"manages account"| node_seller_api
node_seller -->|"manages catalog"| node_product_api
node_customer -->|"browses products"| node_product_api
node_customer -->|"manages cart"| node_cart_api
node_customer -->|"places and views orders"| node_order_api
node_login_api -->|"authenticates sessions"| node_session_service
node_login_api -->|"registers customer"| node_customer_service
node_login_api -->|"registers seller"| node_seller_service
node_customer_api -->|"handles account actions"| node_customer_service
node_seller_api -->|"handles seller actions"| node_seller_service
node_product_api -->|"handles catalog actions"| node_product_service
node_cart_api -->|"handles cart actions"| node_cart_service
node_cart_api -->|"handles item actions"| node_cart_item_service
node_order_api -->|"handles order actions"| node_order_service
node_customer_service -->|"queries and updates"| node_repositories
node_seller_service -->|"queries and updates"| node_repositories
node_product_service -->|"queries and updates"| node_repositories
node_cart_service -->|"queries and updates"| node_repositories
node_cart_item_service -->|"queries and updates"| node_repositories
node_order_service -->|"queries and updates"| node_repositories
node_session_service -->|"stores sessions"| node_repositories
node_repositories -->|"reads and writes"| node_mysql
node_error_handler -->|"formats API errors"| node_customer_api
node_error_handler -->|"formats API errors"| node_seller_api
node_error_handler -->|"formats API errors"| node_product_api
node_error_handler -->|"formats API errors"| node_cart_api
node_error_handler -->|"formats API errors"| node_order_api

click node_login_api "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/LoginController.java"
click node_customer_api "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/CustomerController.java"
click node_seller_api "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/SellerController.java"
click node_product_api "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/ProductController.java"
click node_cart_api "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/CartController.java"
click node_order_api "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/OrderController.java"
click node_session_service "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/LoginLogoutServiceImpl.java"
click node_customer_service "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/CustomerServiceImpl.java"
click node_seller_service "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/SellerServiceImpl.java"
click node_product_service "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/ProductServiceImpl.java"
click node_cart_service "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/CartServiceImpl.java"
click node_cart_item_service "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/CartItemServiceImpl.java"
click node_order_service "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/OrderServiceImpl.java"
click node_repositories "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/tree/main/E-Commerce-Backend/src/main/java/com/masai/repository"
click node_error_handler "https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/exception/GlobalExceptionHandler.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_login_api,node_customer_api,node_seller_api,node_product_api,node_cart_api,node_order_api,node_error_handler toneBlue
class node_session_service,node_customer_service,node_seller_service toneAmber
class node_product_service,node_cart_service,node_cart_item_service,node_order_service toneMint
class node_repositories,node_mysql toneRose
class node_customer,node_seller toneIndigo
```

## Components

### REST API

- [Login API](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/LoginController.java): `E-Commerce-Backend/src/main/java/com/masai/controller/LoginController.java`
- [Customer API](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/CustomerController.java): `E-Commerce-Backend/src/main/java/com/masai/controller/CustomerController.java`
- [Seller API](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/SellerController.java): `E-Commerce-Backend/src/main/java/com/masai/controller/SellerController.java`
- [Product API](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/ProductController.java): `E-Commerce-Backend/src/main/java/com/masai/controller/ProductController.java`
- [Cart API](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/CartController.java): `E-Commerce-Backend/src/main/java/com/masai/controller/CartController.java`
- [Order API](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/controller/OrderController.java): `E-Commerce-Backend/src/main/java/com/masai/controller/OrderController.java`
- [Error handling](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/exception/GlobalExceptionHandler.java): `E-Commerce-Backend/src/main/java/com/masai/exception/GlobalExceptionHandler.java`

### Accounts and sessions

- [Session service](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/LoginLogoutServiceImpl.java): `E-Commerce-Backend/src/main/java/com/masai/service/LoginLogoutServiceImpl.java`
- [Customer service](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/CustomerServiceImpl.java): `E-Commerce-Backend/src/main/java/com/masai/service/CustomerServiceImpl.java`
- [Seller service](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/SellerServiceImpl.java): `E-Commerce-Backend/src/main/java/com/masai/service/SellerServiceImpl.java`

### Store operations

- [Product service](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/ProductServiceImpl.java): `E-Commerce-Backend/src/main/java/com/masai/service/ProductServiceImpl.java`
- [Cart service](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/CartServiceImpl.java): `E-Commerce-Backend/src/main/java/com/masai/service/CartServiceImpl.java`
- [Cart item service](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/CartItemServiceImpl.java): `E-Commerce-Backend/src/main/java/com/masai/service/CartItemServiceImpl.java`
- [Order service](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/blob/main/E-Commerce-Backend/src/main/java/com/masai/service/OrderServiceImpl.java): `E-Commerce-Backend/src/main/java/com/masai/service/OrderServiceImpl.java`

### Persistence

- [Data repositories](https://github.com/abinashpanigrahi/ecommerce-springboot-backend-project/tree/main/E-Commerce-Backend/src/main/java/com/masai/repository): `E-Commerce-Backend/src/main/java/com/masai/repository`
- **MySQL database**

### Other components

- **Customer**
- **Seller**

## Connections

- Customer → Login API: registers or logs in
- Seller → Login API: registers or logs in
- Customer → Customer API: manages account
- Seller → Seller API: manages account
- Seller → Product API: manages catalog
- Customer → Product API: browses products
- Customer → Cart API: manages cart
- Customer → Order API: places and views orders
- Login API → Session service: authenticates sessions
- Login API → Customer service: registers customer
- Login API → Seller service: registers seller
- Customer API → Customer service: handles account actions
- Seller API → Seller service: handles seller actions
- Product API → Product service: handles catalog actions
- Cart API → Cart service: handles cart actions
- Cart API → Cart item service: handles item actions
- Order API → Order service: handles order actions
- Customer service → Data repositories: queries and updates
- Seller service → Data repositories: queries and updates
- Product service → Data repositories: queries and updates
- Cart service → Data repositories: queries and updates
- Cart item service → Data repositories: queries and updates
- Order service → Data repositories: queries and updates
- Session service → Data repositories: stores sessions
- Data repositories → MySQL database: reads and writes
- Error handling → Customer API: formats API errors
- Error handling → Seller API: formats API errors
- Error handling → Product API: formats API errors
- Error handling → Cart API: formats API errors
- Error handling → Order API: formats API errors
