# aditya0530/ecommerce-electronics architecture

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

## Overview

This repository is an electronics e-commerce microservice application. A shopper enters through the API Gateway to browse products, manage a cart, place and view orders, and receive payment/order handling; product and employee administration are separate domain workflows. The graph preserves the documented Eureka discovery layer. Some service implementations and gateway configuration were not sampled, so their internal routing details are not inferred.

Main entry points: [`User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/UserServiceImpl.java`](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/UserServiceImpl.java) (User and Order Service), [`API-Gateway/src/main/java/com/eccomerce/main/apigateway/ApiGatewayApplication.java`](https://github.com/aditya0530/ecommerce-electronics/blob/main/API-Gateway/src/main/java/com/eccomerce/main/apigateway/ApiGatewayApplication.java) (API Gateway), [`Product-ServiceDomain/src/main/java/com/ecommerce/main/controller/ProductController.java`](https://github.com/aditya0530/ecommerce-electronics/blob/main/Product-ServiceDomain/src/main/java/com/ecommerce/main/controller/ProductController.java) (Product API), [`Eureka-Registry/src/main/java/com/eccomerce/main/eureka/EurekaRegistryApplication.java`](https://github.com/aditya0530/ecommerce-electronics/blob/main/Eureka-Registry/src/main/java/com/eccomerce/main/eureka/EurekaRegistryApplication.java) (Eureka Registry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform"]
  node_gateway["API Gateway"]
  node_registry["Eureka Registry"]
end

subgraph group_catalog["Product catalog"]
  node_productapi["Product API"]
  node_productsvc["Product Service"]
  node_productstore[("Product Store")]
end

subgraph group_shopping["Shopping and orders"]
  node_userapi["User API"]
  node_usersvc["User and Order Service"]
  node_userstore[("User and Order Store")]
  node_orderstore[("Order Store")]
  node_cartstore[("Cart Product Store")]
  node_payment["Payment Service"]
  node_email["Email Service"]
end

subgraph group_staff["Employee administration"]
  node_employeeapi["Employee API"]
  node_employeesvc["Employee Service"]
  node_employeestore[("Employee Store")]
  node_adminemail["Admin Email Service"]
end

node_shopper(("Shopper"))

node_shopper -->|"sends requests"| node_gateway
node_gateway -->|"routes requests"| node_userapi
node_gateway -->|"routes requests"| node_productapi
node_gateway -->|"routes requests"| node_employeeapi
node_gateway -.->|"uses discovery"| node_registry
node_userapi -->|"calls"| node_usersvc
node_usersvc -->|"reads and writes"| node_userstore
node_usersvc -->|"reads and writes"| node_orderstore
node_usersvc -->|"reads and writes"| node_cartstore
node_usersvc -->|"fetches product"| node_productapi
node_usersvc -->|"updates stock"| node_productapi
node_usersvc -->|"processes payment"| node_payment
node_usersvc -->|"sends notifications"| node_email
node_productapi -->|"calls"| node_productsvc
node_productsvc -->|"reads and writes"| node_productstore
node_employeeapi -->|"calls"| node_employeesvc
node_employeesvc -->|"reads and writes"| node_employeestore
node_employeesvc -->|"sends welcome email"| node_adminemail
node_userapi -.->|"registers service"| node_registry
node_productapi -.->|"registers service"| node_registry
node_employeeapi -.->|"registers service"| node_registry

click node_gateway "https://github.com/aditya0530/ecommerce-electronics/blob/main/API-Gateway/src/main/java/com/eccomerce/main/apigateway/ApiGatewayApplication.java"
click node_registry "https://github.com/aditya0530/ecommerce-electronics/blob/main/Eureka-Registry/src/main/java/com/eccomerce/main/eureka/EurekaRegistryApplication.java"
click node_userapi "https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/controller/UserController.java"
click node_usersvc "https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/UserServiceImpl.java"
click node_userstore "https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/repository/UserRepository.java"
click node_orderstore "https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/repository/OrderRepository.java"
click node_cartstore "https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/repository/ProductRepository.java"
click node_payment "https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/PaymentServiceImpl.java"
click node_email "https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmailServiceImpl.java"
click node_productapi "https://github.com/aditya0530/ecommerce-electronics/blob/main/Product-ServiceDomain/src/main/java/com/ecommerce/main/controller/ProductController.java"
click node_productsvc "https://github.com/aditya0530/ecommerce-electronics/blob/main/Product-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/ProductServiceImpl.java"
click node_productstore "https://github.com/aditya0530/ecommerce-electronics/blob/main/Product-ServiceDomain/src/main/java/com/ecommerce/main/repository/ProductRepository.java"
click node_employeeapi "https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/controller/EmployeeController.java"
click node_employeesvc "https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmployeeServiceImpl.java"
click node_employeestore "https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/repository/EmployeeRepository.java"
click node_adminemail "https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmailServiceImp.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_gateway,node_registry toneBlue
class node_productapi,node_productsvc,node_productstore toneAmber
class node_userapi,node_usersvc,node_userstore,node_orderstore,node_cartstore,node_payment,node_email toneMint
class node_employeeapi,node_employeesvc,node_employeestore,node_adminemail toneRose
class node_shopper toneIndigo
```

## Components

### Platform

- [API Gateway](https://github.com/aditya0530/ecommerce-electronics/blob/main/API-Gateway/src/main/java/com/eccomerce/main/apigateway/ApiGatewayApplication.java): `API-Gateway/src/main/java/com/eccomerce/main/apigateway/ApiGatewayApplication.java`
- [Eureka Registry](https://github.com/aditya0530/ecommerce-electronics/blob/main/Eureka-Registry/src/main/java/com/eccomerce/main/eureka/EurekaRegistryApplication.java): `Eureka-Registry/src/main/java/com/eccomerce/main/eureka/EurekaRegistryApplication.java`

### Product catalog

- [Product API](https://github.com/aditya0530/ecommerce-electronics/blob/main/Product-ServiceDomain/src/main/java/com/ecommerce/main/controller/ProductController.java): `Product-ServiceDomain/src/main/java/com/ecommerce/main/controller/ProductController.java`
- [Product Service](https://github.com/aditya0530/ecommerce-electronics/blob/main/Product-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/ProductServiceImpl.java): `Product-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/ProductServiceImpl.java`
- [Product Store](https://github.com/aditya0530/ecommerce-electronics/blob/main/Product-ServiceDomain/src/main/java/com/ecommerce/main/repository/ProductRepository.java): `Product-ServiceDomain/src/main/java/com/ecommerce/main/repository/ProductRepository.java`

### Shopping and orders

- [User API](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/controller/UserController.java): `User-ServiceDomain/src/main/java/com/ecommerce/main/controller/UserController.java`
- [User and Order Service](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/UserServiceImpl.java): `User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/UserServiceImpl.java`
- [User and Order Store](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/repository/UserRepository.java): `User-ServiceDomain/src/main/java/com/ecommerce/main/repository/UserRepository.java`
- [Order Store](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/repository/OrderRepository.java): `User-ServiceDomain/src/main/java/com/ecommerce/main/repository/OrderRepository.java`
- [Cart Product Store](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/repository/ProductRepository.java): `User-ServiceDomain/src/main/java/com/ecommerce/main/repository/ProductRepository.java`
- [Payment Service](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/PaymentServiceImpl.java): `User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/PaymentServiceImpl.java`
- [Email Service](https://github.com/aditya0530/ecommerce-electronics/blob/main/User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmailServiceImpl.java): `User-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmailServiceImpl.java`

### Employee administration

- [Employee API](https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/controller/EmployeeController.java): `Admin-ServiceDomain/src/main/java/com/ecommerce/main/controller/EmployeeController.java`
- [Employee Service](https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmployeeServiceImpl.java): `Admin-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmployeeServiceImpl.java`
- [Employee Store](https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/repository/EmployeeRepository.java): `Admin-ServiceDomain/src/main/java/com/ecommerce/main/repository/EmployeeRepository.java`
- [Admin Email Service](https://github.com/aditya0530/ecommerce-electronics/blob/main/Admin-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmailServiceImp.java): `Admin-ServiceDomain/src/main/java/com/ecommerce/main/serviceimpl/EmailServiceImp.java`

### Other components

- **Shopper**

## Connections

- Shopper → API Gateway: sends requests
- API Gateway → User API: routes requests
- API Gateway → Product API: routes requests
- API Gateway → Employee API: routes requests
- API Gateway → Eureka Registry: uses discovery
- User API → User and Order Service: calls
- User and Order Service → User and Order Store: reads and writes
- User and Order Service → Order Store: reads and writes
- User and Order Service → Cart Product Store: reads and writes
- User and Order Service → Product API: fetches product
- User and Order Service → Product API: updates stock
- User and Order Service → Payment Service: processes payment
- User and Order Service → Email Service: sends notifications
- Product API → Product Service: calls
- Product Service → Product Store: reads and writes
- Employee API → Employee Service: calls
- Employee Service → Employee Store: reads and writes
- Employee Service → Admin Email Service: sends welcome email
- User API → Eureka Registry: registers service
- Product API → Eureka Registry: registers service
- Employee API → Eureka Registry: registers service
