How duy18nd/-e-commerce-platform works
ShopMart is a microservices e-commerce platform. A customer browses products, manages a cart, checks out, pays, and tracks the resulting order; administrators manage catalog, inventory, promotions, orders, customers, and reviews. The React SPA calls the backend through the API Gateway, while order/payment coordination uses Kafka and stock operations use synchronous service calls. The README documents the system topology; sampled excerpts confirm checkout responsibilities and review-to-order validation, but most service internals were not sampled.
Main entry points: OrderService.java Checkout & Orders · gateway API Gateway · product Catalog & Search · auth Authentication
Components 22
Storefront
- SPA Routes
frontend/src/routes/AppRoutes.jsx - Storefront Pages
frontend/src/pages - API Services
frontend/src/services
Request Routing
- API Gateway
backend/api-gateway/src/main/java/com/ecommerce/gateway
Identity
- Authentication
backend/auth-service/src/main/java/com/ecommerce/auth - Profiles & Addresses
backend/auth-service/src/main/java/com/ecommerce/auth/service/UserService.java
Commerce Services
- Catalog & Search
backend/product-service/src/main/java/com/ecommerce/product - Stock Management
backend/product-service/src/main/java/com/ecommerce/product/service - Flash Sales
backend/product-service/src/main/java/com/ecommerce/product/service - Product Reviews
backend/product-service/src/main/java/com/ecommerce/product/service/impl/ReviewServiceImpl.java - Shopping Cart
backend/order-service/src/main/java/com/ecommerce/order/service/impl/CartServiceImpl.java - Vouchers
backend/order-service/src/main/java/com/ecommerce/order/service/impl/VoucherServiceImpl.java - Checkout & Orders
backend/order-service/src/main/java/com/ecommerce/order/service/OrderService.java - Mock Payments
backend/payment-service/src/main/java/com/ecommerce/payment
Shared Infrastructure
- Service Registry
backend/discovery-server/src/main/java/com/ecommerce/discovery - Event Broker
- Auth Database
- Product Database
- Order Database
- Payment Database
- Redis
Other components
- Shopper / Admin
Connections 28
- Shopper / Admin → SPA Routes: uses
- SPA Routes → Storefront Pages: routes to
frontend/src/routes/AppRoutes.jsx - Storefront Pages → API Services: requests data
- API Services → API Gateway: calls
- API Gateway → Service Registry: discovers services
- API Gateway → Authentication: routes requests
- API Gateway → Catalog & Search: routes requests
backend/api-gateway/src/main/java/com/ecommerce/gateway/controller/FallbackController.java - API Gateway → Checkout & Orders: routes requests
- API Gateway → Mock Payments: routes requests
backend/api-gateway/src/main/java/com/ecommerce/gateway/controller/FallbackController.java - Authentication → Profiles & Addresses: manages accounts
backend/auth-service/src/main/java/com/ecommerce/auth/controller/AdminCustomerController.java - Authentication → Auth Database: persists identity
- Authentication → Redis: blacklists tokens
- Catalog & Search → Product Database: persists catalog
- Catalog & Search → Stock Management: manages stock
backend/product-service/src/main/java/com/ecommerce/product/controller/ReviewController.java - Catalog & Search → Flash Sales: offers campaigns
backend/product-service/src/main/java/com/ecommerce/product/controller/ReviewController.java - Catalog & Search → Product Reviews: supports reviews
backend/product-service/src/main/java/com/ecommerce/product/controller/ReviewController.java - Product Reviews → Checkout & Orders: validates purchase
backend/product-service/src/main/java/com/ecommerce/product/service/impl/ReviewServiceImpl.java - Checkout & Orders → Product Database: reserves stock
backend/order-service/src/main/java/com/ecommerce/order/service/OrderService.java - Checkout & Orders → Stock Management: reserves stock
backend/order-service/src/main/java/com/ecommerce/order/service/OrderService.java - Shopping Cart → Checkout & Orders: checks out
- Vouchers → Checkout & Orders: discounts checkout
- Checkout & Orders → Order Database: persists orders
- Checkout & Orders → Event Broker: publishes order-created
- Event Broker → Mock Payments: delivers events
- Mock Payments → Payment Database: persists payments
- Mock Payments → Event Broker: publishes payment result
- Event Broker → Checkout & Orders: delivers payment result
- Catalog & Search → Redis: caches products