# sathish-dhana/amazon-java-backend-project architecture

> Architecture diagram of the GitHub repository sathish-dhana/amazon-java-backend-project, 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/sathish-dhana/amazon-java-backend-project
- Repository: https://github.com/sathish-dhana/amazon-java-backend-project

## Overview

This is a Spring Boot REST backend for an e-commerce marketplace. Customers browse products, manage addresses and payment details, add products to a cart, and place orders; sellers manage accounts, addresses, and listings. The order service coordinates cart validation, shipment construction, and customer order persistence. The README describes validation, business logic, and database persistence; sampled source confirms key cart, product, seller, customer, and order interactions. Other controller-to-service wiring is represented only where visible or explicit in the excerpts.

Main entry points: [`E-Commerce/src/main/java/com/masai/controller/CartController.java`](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/CartController.java) (Cart API), [`E-Commerce/src/main/java/com/masai/service/OrderService.java`](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/OrderService.java) (Order Service), [`E-Commerce/src/main/java/com/masai/service/CartService.java`](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CartService.java) (Cart Service), [`E-Commerce/src/main/java/com/masai/service/CustomerService.java`](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CustomerService.java) (Customer Service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Accounts and Access"]
  node_customer_api["Customer API"]
  node_seller_api["Seller API"]
  node_login_api["Login API"]
  node_customer_service["Customer Service"]
  node_seller_service["Seller Service<br/>[SellerService.java]"]
  node_login_service["Login Service<br/>[LoginService.java]"]
  node_address_service["Address Service"]
  node_card_service["Card Service<br/>[CardService.java]"]
end

subgraph group_catalog["Marketplace Catalog"]
  node_product_api["Product API"]
  node_product_service["Product Service"]
end

subgraph group_purchase["Cart and Orders"]
  node_cart_api["Cart API"]
  node_cart_service["Cart Service<br/>[CartService.java]"]
  node_item_service["Item Service<br/>[ItemService.java]"]
  node_order_api["Order API"]
  node_order_service["Order Service<br/>[OrderService.java]"]
end

subgraph group_persistence["Persistence"]
  node_customer_store[("Customer Store")]
  node_seller_store[("Seller Store")]
  node_product_store[("Product Store")]
  node_cart_store[("Cart Store<br/>[CartCrudRepo.java]")]
  node_item_store[("Item Store<br/>[ItemCrudRepo.java]")]
  node_order_store[("Order Store<br/>[OrderCrudRepo.java]")]
  node_address_store[("Address Store")]
end

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

node_customer -->|"calls REST"| node_customer_api
node_seller -->|"calls REST"| node_seller_api
node_customer_api -->|"invokes"| node_customer_service
node_customer_api -->|"validates token"| node_login_service
node_seller_api -->|"invokes"| node_seller_service
node_seller_api -->|"validates token"| node_login_service
node_login_api -->|"invokes"| node_login_service
node_customer_service -->|"reads/writes"| node_customer_store
node_seller_service -->|"reads/writes"| node_seller_store
node_seller_service -->|"updates listing"| node_product_service
node_customer_service -->|"adds address"| node_address_service
node_address_service -->|"reads/writes"| node_address_store
node_product_api -->|"invokes"| node_product_service
node_product_api -->|"checks seller"| node_seller_service
node_product_service -->|"reads/writes"| node_product_store
node_cart_api -->|"validates token"| node_login_service
node_cart_api -->|"creates item"| node_item_service
node_cart_api -->|"manages cart"| node_cart_service
node_cart_api -->|"loads customer"| node_customer_store
node_cart_api -->|"loads product"| node_product_store
node_cart_api -->|"loads cart"| node_cart_store
node_cart_service -->|"reduces stock"| node_product_service
node_cart_service -->|"loads customer"| node_customer_store
node_cart_service -->|"reads/writes"| node_cart_store
node_cart_service -->|"reads/writes"| node_item_store
node_order_api -->|"invokes"| node_order_service
node_order_service -->|"loads customer"| node_customer_service
node_order_service -->|"moves cart items"| node_cart_service
node_order_service -->|"loads address"| node_address_service
node_order_service -->|"persists order"| node_order_store
node_order_service -->|"adds customer order"| node_customer_service

click node_customer_api "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/CustomerController.java"
click node_seller_api "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/SellerController.java"
click node_login_api "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/LoginController.java"
click node_customer_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CustomerService.java"
click node_seller_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/SellerService.java"
click node_login_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/LoginService.java"
click node_address_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/AddressService.java"
click node_card_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CardService.java"
click node_product_api "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/ProductController.java"
click node_product_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/ProductService.java"
click node_cart_api "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/CartController.java"
click node_cart_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CartService.java"
click node_item_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/ItemService.java"
click node_order_api "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/OrderController.java"
click node_order_service "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/OrderService.java"
click node_customer_store "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/CustomerCrudRepo.java"
click node_seller_store "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/SellerCrudRepo.java"
click node_product_store "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/ProductCrudRepo.java"
click node_cart_store "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/CartCrudRepo.java"
click node_item_store "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/ItemCrudRepo.java"
click node_order_store "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/OrderCrudRepo.java"
click node_address_store "https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/AddressCrudRepo.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_customer_api,node_seller_api,node_login_api,node_customer_service,node_seller_service,node_login_service,node_address_service,node_card_service toneBlue
class node_product_api,node_product_service toneAmber
class node_cart_api,node_cart_service,node_item_service,node_order_api,node_order_service toneMint
class node_customer_store,node_seller_store,node_product_store,node_cart_store,node_item_store,node_order_store,node_address_store toneRose
class node_customer,node_seller toneIndigo
```

## Components

### Accounts and Access

- [Customer API](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/CustomerController.java): `E-Commerce/src/main/java/com/masai/controller/CustomerController.java`
- [Seller API](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/SellerController.java): `E-Commerce/src/main/java/com/masai/controller/SellerController.java`
- [Login API](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/LoginController.java): `E-Commerce/src/main/java/com/masai/controller/LoginController.java`
- [Customer Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CustomerService.java): `E-Commerce/src/main/java/com/masai/service/CustomerService.java`
- [Seller Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/SellerService.java): `E-Commerce/src/main/java/com/masai/service/SellerService.java`
- [Login Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/LoginService.java): `E-Commerce/src/main/java/com/masai/service/LoginService.java`
- [Address Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/AddressService.java): `E-Commerce/src/main/java/com/masai/service/AddressService.java`
- [Card Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CardService.java): `E-Commerce/src/main/java/com/masai/service/CardService.java`

### Marketplace Catalog

- [Product API](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/ProductController.java): `E-Commerce/src/main/java/com/masai/controller/ProductController.java`
- [Product Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/ProductService.java): `E-Commerce/src/main/java/com/masai/service/ProductService.java`

### Cart and Orders

- [Cart API](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/CartController.java): `E-Commerce/src/main/java/com/masai/controller/CartController.java`
- [Cart Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/CartService.java): `E-Commerce/src/main/java/com/masai/service/CartService.java`
- [Item Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/ItemService.java): `E-Commerce/src/main/java/com/masai/service/ItemService.java`
- [Order API](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/controller/OrderController.java): `E-Commerce/src/main/java/com/masai/controller/OrderController.java`
- [Order Service](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/service/OrderService.java): `E-Commerce/src/main/java/com/masai/service/OrderService.java`

### Persistence

- [Customer Store](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/CustomerCrudRepo.java): `E-Commerce/src/main/java/com/masai/repository/CustomerCrudRepo.java`
- [Seller Store](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/SellerCrudRepo.java): `E-Commerce/src/main/java/com/masai/repository/SellerCrudRepo.java`
- [Product Store](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/ProductCrudRepo.java): `E-Commerce/src/main/java/com/masai/repository/ProductCrudRepo.java`
- [Cart Store](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/CartCrudRepo.java): `E-Commerce/src/main/java/com/masai/repository/CartCrudRepo.java`
- [Item Store](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/ItemCrudRepo.java): `E-Commerce/src/main/java/com/masai/repository/ItemCrudRepo.java`
- [Order Store](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/OrderCrudRepo.java): `E-Commerce/src/main/java/com/masai/repository/OrderCrudRepo.java`
- [Address Store](https://github.com/sathish-dhana/amazon-java-backend-project/blob/master/E-Commerce/src/main/java/com/masai/repository/AddressCrudRepo.java): `E-Commerce/src/main/java/com/masai/repository/AddressCrudRepo.java`

### Other components

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

## Connections

- Customer → Customer API: calls REST
- Seller → Seller API: calls REST
- Customer API → Customer Service: invokes
- Customer API → Login Service: validates token
- Seller API → Seller Service: invokes
- Seller API → Login Service: validates token
- Login API → Login Service: invokes
- Customer Service → Customer Store: reads/writes
- Seller Service → Seller Store: reads/writes
- Seller Service → Product Service: updates listing
- Customer Service → Address Service: adds address
- Address Service → Address Store: reads/writes
- Product API → Product Service: invokes
- Product API → Seller Service: checks seller
- Product Service → Product Store: reads/writes
- Cart API → Login Service: validates token
- Cart API → Item Service: creates item
- Cart API → Cart Service: manages cart
- Cart API → Customer Store: loads customer
- Cart API → Product Store: loads product
- Cart API → Cart Store: loads cart
- Cart Service → Product Service: reduces stock
- Cart Service → Customer Store: loads customer
- Cart Service → Cart Store: reads/writes
- Cart Service → Item Store: reads/writes
- Order API → Order Service: invokes
- Order Service → Customer Service: loads customer
- Order Service → Cart Service: moves cart items
- Order Service → Address Service: loads address
- Order Service → Order Store: persists order
- Order Service → Customer Service: adds customer order
