# navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system architecture

> Architecture diagram of the GitHub repository navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system
- Repository: https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system

## Overview

Nexora Retail is a multi-warehouse inventory platform. Its documented core workflow is product setup, warehouse stock replenishment, and order placement: the order service validates products, reserves inventory, and records a confirmed order, releasing earlier reservations if a later step fails. The React application also exposes role-based operations for warehouse management, transfers, procurement, reconciliation, fulfillment, analytics, and administration. Backend calls are grounded in sampled controllers and OrderService; broader UI capabilities and service discovery are described in the README/tree, while detailed frontend request wiring was not sampled.

Main entry points: [`api-gateway/src/main/java/com/omnistock/gateway/ApiGatewayApplication.java`](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/api-gateway/src/main/java/com/omnistock/gateway/ApiGatewayApplication.java) (API gateway), [`frontend/src/App.jsx`](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/App.jsx) (React application), [`frontend/src/context/InventoryDataContext.jsx`](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/context/InventoryDataContext.jsx) (Inventory data context), [`order-service/src/main/java/com/omnistock/order/service/OrderService.java`](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/service/OrderService.java) (Order saga service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Retail application"]
  node_app["React application<br/>[App.jsx]"]
  node_authctx["Authentication context<br/>[AuthContext.jsx]"]
  node_invctx["Inventory data context"]
  node_authapi["Auth API client<br/>[authApi.js]"]
  node_productapi["Product API client<br/>[productApi.js]"]
  node_inventoryapi["Inventory API client<br/>[inventoryApi.js]"]
  node_orderapi["Order API client<br/>[orderApi.js]"]
  node_featurepages["Operations and reporting"]
end

subgraph group_platform["Platform and identity"]
  node_gateway["API gateway"]
  node_jwtfilter["Gateway JWT filter"]
  node_discovery["Eureka discovery"]
  node_authcontroller["Auth endpoints"]
  node_jwtservice["JWT issuance<br/>[JwtService.java]"]
  node_users[("User repository")]
end

subgraph group_catalog["Product catalog"]
  node_productcontroller["Product endpoints"]
  node_products[("Product repository")]
end

subgraph group_inventory["Warehouse inventory"]
  node_inventorycontroller["Stock endpoints"]
  node_warehousecontroller["Warehouse endpoints"]
  node_productclient["Product validation client<br/>[ProductClient.java]"]
  node_stockitems[("Stock item repository")]
  node_warehouses[("Warehouse repository")]
end

subgraph group_orders["Order orchestration"]
  node_ordercontroller["Order endpoints"]
  node_orderservice["Order saga service<br/>[OrderService.java]"]
  node_orderproductclient["Product lookup client<br/>[ProductClient.java]"]
  node_inventoryclient["Stock reservation client"]
  node_orderrepo[("Order repository")]
end

node_user(("Retail user"))

node_user -->|"uses"| node_app
node_app -->|"provides auth"| node_authctx
node_app -->|"provides data"| node_invctx
node_app -->|"routes to"| node_featurepages
node_authctx -->|"requests auth"| node_authapi
node_invctx -->|"loads products"| node_productapi
node_invctx -->|"loads stock"| node_inventoryapi
node_invctx -->|"loads orders"| node_orderapi
node_authapi -->|"sends requests"| node_gateway
node_productapi -->|"sends requests"| node_gateway
node_inventoryapi -->|"sends requests"| node_gateway
node_orderapi -->|"sends requests"| node_gateway
node_gateway -->|"validates JWT"| node_jwtfilter
node_gateway -->|"routes auth"| node_authcontroller
node_gateway -->|"routes catalog"| node_productcontroller
node_gateway -->|"routes stock"| node_inventorycontroller
node_gateway -->|"routes warehouses"| node_warehousecontroller
node_gateway -->|"routes orders"| node_ordercontroller
node_authcontroller -->|"reads and writes"| node_users
node_authcontroller -->|"issues token"| node_jwtservice
node_productcontroller -->|"reads and writes"| node_products
node_inventorycontroller -->|"reads and writes"| node_stockitems
node_inventorycontroller -->|"validates product"| node_productclient
node_productclient -->|"checks product"| node_productcontroller
node_warehousecontroller -->|"reads and writes"| node_warehouses
node_ordercontroller -->|"places order"| node_orderservice
node_ordercontroller -->|"queries orders"| node_orderrepo
node_orderservice -->|"validates items"| node_orderproductclient
node_orderproductclient -->|"checks product"| node_productcontroller
node_orderservice -->|"reserves or releases"| node_inventoryclient
node_inventoryclient -->|"changes stock"| node_inventorycontroller
node_orderservice -->|"saves result"| node_orderrepo
node_discovery -.->|"registers services"| node_gateway

click node_app "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/App.jsx"
click node_authctx "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/context/AuthContext.jsx"
click node_invctx "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/context/InventoryDataContext.jsx"
click node_authapi "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/authApi.js"
click node_productapi "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/productApi.js"
click node_inventoryapi "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/inventoryApi.js"
click node_orderapi "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/orderApi.js"
click node_featurepages "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/tree/main/frontend/src/pages"
click node_gateway "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/api-gateway/src/main/java/com/omnistock/gateway/ApiGatewayApplication.java"
click node_jwtfilter "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/api-gateway/src/main/java/com/omnistock/gateway/filter/JwtAuthenticationFilter.java"
click node_discovery "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/discovery-service/src/main/java/com/omnistock/discovery/DiscoveryServiceApplication.java"
click node_authcontroller "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/auth-service/src/main/java/com/omnistock/auth/controller/AuthController.java"
click node_jwtservice "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/auth-service/src/main/java/com/omnistock/auth/service/JwtService.java"
click node_users "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/auth-service/src/main/java/com/omnistock/auth/repository/UserRepository.java"
click node_productcontroller "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/product-service/src/main/java/com/omnistock/product/controller/ProductController.java"
click node_products "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/product-service/src/main/java/com/omnistock/product/repository/ProductRepository.java"
click node_inventorycontroller "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/controller/InventoryController.java"
click node_warehousecontroller "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/controller/WarehouseController.java"
click node_productclient "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/client/ProductClient.java"
click node_stockitems "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/repository/StockItemRepository.java"
click node_warehouses "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/repository/WarehouseRepository.java"
click node_ordercontroller "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/controller/OrderController.java"
click node_orderservice "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/service/OrderService.java"
click node_orderproductclient "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/client/ProductClient.java"
click node_inventoryclient "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/client/InventoryClient.java"
click node_orderrepo "https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/repository/OrderRepository.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_app,node_authctx,node_invctx,node_authapi,node_productapi,node_inventoryapi,node_orderapi,node_featurepages,node_user toneBlue
class node_gateway,node_jwtfilter,node_discovery,node_authcontroller,node_jwtservice,node_users toneAmber
class node_productcontroller,node_products toneMint
class node_inventorycontroller,node_warehousecontroller,node_productclient,node_stockitems,node_warehouses toneRose
class node_ordercontroller,node_orderservice,node_orderproductclient,node_inventoryclient,node_orderrepo toneIndigo
```

## Components

### Retail application

- [React application](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Authentication context](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Inventory data context](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/context/InventoryDataContext.jsx): `frontend/src/context/InventoryDataContext.jsx`
- [Auth API client](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/authApi.js): `frontend/src/api/authApi.js`
- [Product API client](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/productApi.js): `frontend/src/api/productApi.js`
- [Inventory API client](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/inventoryApi.js): `frontend/src/api/inventoryApi.js`
- [Order API client](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/frontend/src/api/orderApi.js): `frontend/src/api/orderApi.js`
- [Operations and reporting](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/tree/main/frontend/src/pages): `frontend/src/pages`

### Platform and identity

- [API gateway](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/api-gateway/src/main/java/com/omnistock/gateway/ApiGatewayApplication.java): `api-gateway/src/main/java/com/omnistock/gateway/ApiGatewayApplication.java`
- [Gateway JWT filter](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/api-gateway/src/main/java/com/omnistock/gateway/filter/JwtAuthenticationFilter.java): `api-gateway/src/main/java/com/omnistock/gateway/filter/JwtAuthenticationFilter.java`
- [Eureka discovery](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/discovery-service/src/main/java/com/omnistock/discovery/DiscoveryServiceApplication.java): `discovery-service/src/main/java/com/omnistock/discovery/DiscoveryServiceApplication.java`
- [Auth endpoints](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/auth-service/src/main/java/com/omnistock/auth/controller/AuthController.java): `auth-service/src/main/java/com/omnistock/auth/controller/AuthController.java`
- [JWT issuance](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/auth-service/src/main/java/com/omnistock/auth/service/JwtService.java): `auth-service/src/main/java/com/omnistock/auth/service/JwtService.java`
- [User repository](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/auth-service/src/main/java/com/omnistock/auth/repository/UserRepository.java): `auth-service/src/main/java/com/omnistock/auth/repository/UserRepository.java`

### Product catalog

- [Product endpoints](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/product-service/src/main/java/com/omnistock/product/controller/ProductController.java): `product-service/src/main/java/com/omnistock/product/controller/ProductController.java`
- [Product repository](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/product-service/src/main/java/com/omnistock/product/repository/ProductRepository.java): `product-service/src/main/java/com/omnistock/product/repository/ProductRepository.java`

### Warehouse inventory

- [Stock endpoints](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/controller/InventoryController.java): `inventory-service/src/main/java/com/omnistock/inventory/controller/InventoryController.java`
- [Warehouse endpoints](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/controller/WarehouseController.java): `inventory-service/src/main/java/com/omnistock/inventory/controller/WarehouseController.java`
- [Product validation client](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/client/ProductClient.java): `inventory-service/src/main/java/com/omnistock/inventory/client/ProductClient.java`
- [Stock item repository](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/repository/StockItemRepository.java): `inventory-service/src/main/java/com/omnistock/inventory/repository/StockItemRepository.java`
- [Warehouse repository](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/inventory-service/src/main/java/com/omnistock/inventory/repository/WarehouseRepository.java): `inventory-service/src/main/java/com/omnistock/inventory/repository/WarehouseRepository.java`

### Order orchestration

- [Order endpoints](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/controller/OrderController.java): `order-service/src/main/java/com/omnistock/order/controller/OrderController.java`
- [Order saga service](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/service/OrderService.java): `order-service/src/main/java/com/omnistock/order/service/OrderService.java`
- [Product lookup client](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/client/ProductClient.java): `order-service/src/main/java/com/omnistock/order/client/ProductClient.java`
- [Stock reservation client](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/client/InventoryClient.java): `order-service/src/main/java/com/omnistock/order/client/InventoryClient.java`
- [Order repository](https://github.com/navadeep-16/multi-warehouse-inventory-control-stock-reconciliation-system/blob/main/order-service/src/main/java/com/omnistock/order/repository/OrderRepository.java): `order-service/src/main/java/com/omnistock/order/repository/OrderRepository.java`

### Other components

- **Retail user**

## Connections

- Retail user → React application: uses
- React application → Authentication context: provides auth
- React application → Inventory data context: provides data
- React application → Operations and reporting: routes to
- Authentication context → Auth API client: requests auth
- Inventory data context → Product API client: loads products
- Inventory data context → Inventory API client: loads stock
- Inventory data context → Order API client: loads orders
- Auth API client → API gateway: sends requests
- Product API client → API gateway: sends requests
- Inventory API client → API gateway: sends requests
- Order API client → API gateway: sends requests
- API gateway → Gateway JWT filter: validates JWT
- API gateway → Auth endpoints: routes auth
- API gateway → Product endpoints: routes catalog
- API gateway → Stock endpoints: routes stock
- API gateway → Warehouse endpoints: routes warehouses
- API gateway → Order endpoints: routes orders
- Auth endpoints → User repository: reads and writes
- Auth endpoints → JWT issuance: issues token
- Product endpoints → Product repository: reads and writes
- Stock endpoints → Stock item repository: reads and writes
- Stock endpoints → Product validation client: validates product
- Product validation client → Product endpoints: checks product
- Warehouse endpoints → Warehouse repository: reads and writes
- Order endpoints → Order saga service: places order
- Order endpoints → Order repository: queries orders
- Order saga service → Product lookup client: validates items
- Product lookup client → Product endpoints: checks product
- Order saga service → Stock reservation client: reserves or releases
- Stock reservation client → Stock endpoints: changes stock
- Order saga service → Order repository: saves result
- Eureka discovery → API gateway: registers services
