How raman-8688/enterprise-order-management-system works
OMS supports user registration and JWT login, then authenticated catalog, inventory, order, payment, and reporting workflows through an Angular client and API gateway. Order creation is a distinct saga stage: the order service coordinates product/inventory checks and event-driven payment processing, with Kafka carrying payment outcomes back to orders. Product, inventory, order, payment, and auth services own separate persistence. The README documents discovery and centralized configuration; the tree identifies their applications, but sampled source does not establish registration or configuration call wiring.
Main entry points: app.routes.ts Angular application · ApiGatewayApplication.java API gateway · OrderController.java Order service · ProductController.java Product service
Components 28
Client application
- Angular application
frontend/src/app/app.routes.ts - Login and registration
frontend/src/app/core/auth/services/auth.service.ts - Catalog screens
frontend/src/app/features/products/services/product.service.ts - Order screens
frontend/src/app/features/orders/services/order.service.ts - Inventory screens
frontend/src/app/features/inventory/services/inventory.service.ts - Payment screens
frontend/src/app/features/payments/services/payment.service.ts - Reports and settings
frontend/src/app/features/reports/pages/reports/reports.component.ts
Gateway and identity
- API gateway
backend/api-gateway/src/main/java/com/enterprise/oms/gateway/ApiGatewayApplication.java - Auth service
backend/auth-service/src/main/java/com/enterprise/oms/auth/controller/AuthController.java - User and token logic
backend/auth-service/src/main/java/com/enterprise/oms/auth/service/UserService.java - Auth user store
backend/auth-service/src/main/java/com/enterprise/oms/auth/repository/UserRepository.java
Commerce services
- Product service
backend/product-service/src/main/java/com/enterprise/oms/product/controller/ProductController.java - Product store
backend/product-service/src/main/java/com/enterprise/oms/product/repository/ProductRepository.java - Inventory service
backend/inventory-service/src/main/java/com/enterprise/oms/inventory/controller/InventoryController.java - Inventory store
backend/inventory-service/src/main/java/com/enterprise/oms/inventory/repository/InventoryRepository.java - Order service
backend/order-service/src/main/java/com/enterprise/oms/order/controller/OrderController.java - Order saga
backend/order-service/src/main/java/com/enterprise/oms/order/service/saga/OrderSagaOrchestrator.java - Order store
backend/order-service/src/main/java/com/enterprise/oms/order/repository/OrderRepository.java - Payment service
backend/payment-service/src/main/java/com/enterprise/oms/payment/controller/PaymentController.java - Payment store
backend/payment-service/src/main/java/com/enterprise/oms/payment/repository/PaymentRepository.java
Messaging and discovery
- Order event publisher
backend/order-service/src/main/java/com/enterprise/oms/order/events/publisher/OrderEventPublisher.java - Payment event consumer
backend/order-service/src/main/java/com/enterprise/oms/order/events/consumer/PaymentEventConsumer.java - Order event consumer
backend/payment-service/src/main/java/com/enterprise/oms/payment/consumer/OrderEventConsumer.java - Payment event publisher
backend/payment-service/src/main/java/com/enterprise/oms/payment/publisher/PaymentEventPublisher.java - Kafka broker
- Eureka discovery
backend/discovery-server/src/main/java/com/enterprise/oms/discovery/DiscoveryServerApplication.java - Config server
backend/config-server/src/main/java/com/enterprise/oms/config/ConfigServerApplication.java
Other components
- OMS user
Connections 37
- OMS user → Angular application: uses
- Angular application → Login and registration: routes to
- Angular application → Catalog screens: routes to
- Angular application → Order screens: routes to
- Angular application → Inventory screens: routes to
- Angular application → Payment screens: routes to
- Angular application → Reports and settings: routes to
- Angular application → API gateway: HTTP requests
- API gateway → Auth service: routes
- API gateway → Product service: routes
- API gateway → Inventory service: routes
- API gateway → Order service: routes
- API gateway → Payment service: routes
- Auth service → User and token logic: calls
- User and token logic → Auth user store: reads/writes
- Product service → Product store: reads/writes
- Product service → Inventory service: Feign queries
- Inventory service → Inventory store: reads/writes
- Order service → Order saga: creates via
- Order service → Order store: queries
- Order saga → Product service: checks products
- Order saga → Inventory service: reserves stock
- Order saga → Order store: persists order
- Order service → Order event publisher: publishes through
- Order event publisher → Kafka broker: publishes events
- Kafka broker → Order event consumer: delivers events
- Order event consumer → Payment service: processes via
- Payment service → Payment store: reads/writes
- Payment service → Payment event publisher: publishes through
- Payment event publisher → Kafka broker: publishes events
- Kafka broker → Payment event consumer: delivers events
- Payment event consumer → Order store: updates order
- Auth service → Eureka discovery: registers
- Product service → Eureka discovery: registers
- Inventory service → Eureka discovery: registers
- Order service → Eureka discovery: registers
- Payment service → Eureka discovery: registers