How giahuytruonn/7-flash-delivery works
7-Flash Delivery is a retail storefront and management system. Customers browse products, maintain a cart, create an order, and initiate payment; the backend then reserves inventory asynchronously and tracks payment status, while administrators manage products and orders. Authentication, catalog, order/payment, and inventory/event handling are distinct stages. The graph reflects sampled calls and explicit README flows; several frontend pages and event listeners were not sampled, so their internal connections are omitted where unverified.
Main entry points: OrderService.java Order Service · api.js API Client · App.jsx Route App · ProductController.java Product API
Components 26
Storefront Client
- Route App
frontend/src/App.jsx - Auth Context
frontend/src/context/AuthContext.jsx - Cart Context
frontend/src/context/CartContext.jsx - Shop & Cart Pages
frontend/src/pages - Admin Pages
frontend/src/pages - API Client
frontend/src/services/api.js
Identity & Access
- Auth API
backend/src/main/java/com/sevenelevenvn/module/user/controller/AuthController.java - Authentication
backend/src/main/java/com/sevenelevenvn/module/user/service/AuthService.java - User Records
backend/src/main/java/com/sevenelevenvn/module/user/repository/UserRepository.java - JWT Utilities
backend/src/main/java/com/sevenelevenvn/infrastructure/security/JwtUtils.java
Product Catalog
- Product API
backend/src/main/java/com/sevenelevenvn/module/product/controller/ProductController.java - Catalog Service
backend/src/main/java/com/sevenelevenvn/module/product/service/ProductService.java - Product Records
backend/src/main/java/com/sevenelevenvn/module/product/repository/ProductRepository.java - Image Upload
backend/src/main/java/com/sevenelevenvn/module/product/service/ImageUploadService.java
Orders & Payments
- Order API
backend/src/main/java/com/sevenelevenvn/module/order/controller/OrderController.java - Order Service
backend/src/main/java/com/sevenelevenvn/module/order/service/OrderService.java - Order Records
backend/src/main/java/com/sevenelevenvn/module/order/repository/OrderRepository.java - Payment API
backend/src/main/java/com/sevenelevenvn/module/order/controller/PaymentController.java - Redis State
backend/src/main/java/com/sevenelevenvn/module/order/controller/PaymentController.java
Inventory & Events
- Inventory Listener
backend/src/main/java/com/sevenelevenvn/module/product/listener/InventoryEventListener.java - RabbitMQ Bridge
backend/src/main/java/com/sevenelevenvn/infrastructure/messaging/RabbitMQInventoryBridge.java
Other components
- Customer / Admin
- Cloudinary
- PayOS Gateway
- RabbitMQ
- API Responses
backend/src/main/java/com/sevenelevenvn/common/ApiResponse.java
Connections 33
- Customer / Admin → Route App: uses
- Route App → Auth Context: provides context
frontend/src/App.jsx - Route App → Cart Context: provides context
frontend/src/App.jsx - Route App → Shop & Cart Pages: routes to
frontend/src/App.jsx - Route App → Admin Pages: routes to
frontend/src/App.jsx - Auth Context → API Client: requests
frontend/src/context/AuthContext.jsx - Cart Context → API Client: creates orders
frontend/src/context/CartContext.jsx - Shop & Cart Pages → Cart Context: uses cart
frontend/src/pages/Cart.jsx - Admin Pages → API Client: requests
frontend/src/pages/ProductManagement.jsx - API Client → Auth API: calls auth
- API Client → Product API: calls catalog
- API Client → Order API: calls orders
- API Client → Payment API: calls payments
- Auth API → Authentication: delegates to
backend/src/main/java/com/sevenelevenvn/module/user/controller/AuthController.java - Authentication → User Records: reads and writes
backend/src/main/java/com/sevenelevenvn/module/user/service/AuthService.java - Authentication → JWT Utilities: generates token
backend/src/main/java/com/sevenelevenvn/module/user/service/AuthService.java - Product API → Catalog Service: delegates to
backend/src/main/java/com/sevenelevenvn/module/product/controller/ProductController.java - Product API → Image Upload: uploads images
backend/src/main/java/com/sevenelevenvn/module/product/controller/ProductController.java - Image Upload → Cloudinary: uploads to
- Catalog Service → Product Records: queries and saves
backend/src/main/java/com/sevenelevenvn/module/product/service/ProductService.java - Product API → API Responses: returns
backend/src/main/java/com/sevenelevenvn/module/product/controller/ProductController.java - Order API → Order Service: delegates to
backend/src/main/java/com/sevenelevenvn/module/order/controller/OrderController.java - Order Service → Product Records: reads product data
backend/src/main/java/com/sevenelevenvn/module/order/service/OrderService.java - Order Service → Order Records: saves order
backend/src/main/java/com/sevenelevenvn/module/order/service/OrderService.java - Order Service → Inventory Listener: publishes deduction event
- Payment API → Order Records: reads and updates
backend/src/main/java/com/sevenelevenvn/module/order/controller/PaymentController.java - Payment API → Redis State: stores mapping
backend/src/main/java/com/sevenelevenvn/module/order/controller/PaymentController.java - Payment API → PayOS Gateway: creates payment link
backend/src/main/java/com/sevenelevenvn/module/order/controller/PaymentController.java - Order Service → Redis State: looks up mapping
- Order Service → PayOS Gateway: polls status
backend/src/main/java/com/sevenelevenvn/module/order/service/OrderService.java - Order Service → Inventory Listener: publishes restore event
- RabbitMQ Bridge → RabbitMQ: publishes events
- Customer / Admin → Product API: browses catalog