How auzzton/scm works
SCM is a supply-chain management application for inventory, suppliers, purchase orders, users, and operational analytics. The primary workflow is a user managing products and suppliers, creating or editing pending orders, then completing an order to increase stock; order status changes also publish events. The Next.js client uses a typed API client to reach Spring REST endpoints, with backend services coordinating persistence and business logic. The tree and README establish analytics and Kafka capabilities; sampled source verifies order and product service behavior, while detailed wiring for unsampled subsystems is not inferred.
Main entry points: api.ts Typed API client · OrderService.java Order lifecycle · repository Domain repositories · app App pages
Components 25
Web client
- App pages
scm-client/src/app - Auth state
scm-client/src/store/useAuthStore.ts - Typed API client
scm-client/src/lib/api.ts
Identity and access
- Login and guards
scm-client/src/components - Authentication API
scm-server/src/main/java/com/scm/server/controller/AuthenticationController.java - Authentication service
scm-server/src/main/java/com/scm/server/service/AuthenticationService.java - JWT security
scm-server/src/main/java/com/scm/server/config - User persistence
scm-server/src/main/java/com/scm/server/repository/UserRepository.java
Supply operations
- Order API
scm-server/src/main/java/com/scm/server/controller/OrderController.java - Order lifecycle
scm-server/src/main/java/com/scm/server/service/OrderService.java - Product API
scm-server/src/main/java/com/scm/server/controller/ProductController.java - Inventory service
scm-server/src/main/java/com/scm/server/service/ProductService.java - Supplier API
scm-server/src/main/java/com/scm/server/controller/SupplierController.java - Supplier service
scm-server/src/main/java/com/scm/server/service/SupplierService.java - Domain repositories
scm-server/src/main/java/com/scm/server/repository - Supply domain
scm-server/src/main/java/com/scm/server/model
Analytics
- Dashboard API
scm-server/src/main/java/com/scm/server/controller/DashboardController.java - Dashboard metrics
scm-server/src/main/java/com/scm/server/service/DashboardService.java - Analytics API
scm-server/src/main/java/com/scm/server/controller/AnalyticsController.java - Analytics service
scm-server/src/main/java/com/scm/server/service/AnalyticsService.java
Order events
- Order event producer
scm-server/src/main/java/com/scm/server/service/OrderEventProducer.java - Event consumers
scm-server/src/main/java/com/scm/server/service
Other components
- User
- PostgreSQL
- Kafka
Connections 30
- User → App pages: uses
- App pages → Typed API client: requests data
- App pages → Login and guards: renders auth
- Login and guards → Auth state: stores session
- Typed API client → Authentication API: REST calls
- Authentication API → Authentication service: delegates auth
- Authentication service → User persistence: reads and writes
- Authentication service → JWT security: issues tokens
- Typed API client → Order API: REST calls
- Order API → Order lifecycle: delegates orders
- Order lifecycle → Domain repositories: reads and writes
- Order lifecycle → Supplier service: loads supplier
- Order lifecycle → Inventory service: loads products
- Order lifecycle → Order event producer: dispatches event
- Order event producer → Kafka: publishes
- Kafka → Event consumers: delivers events
- Typed API client → Product API: REST calls
- Product API → Inventory service: delegates inventory
- Inventory service → Domain repositories: reads and writes
- Typed API client → Supplier API: REST calls
- Supplier API → Supplier service: delegates suppliers
- Supplier service → Domain repositories: reads and writes
- Domain repositories → PostgreSQL: persists entities
- Order lifecycle → Supply domain: updates stock
- Typed API client → Dashboard API: REST calls
- Dashboard API → Dashboard metrics: requests stats
- Dashboard metrics → Domain repositories: reads summaries
- Typed API client → Analytics API: REST calls
- Analytics API → Analytics service: requests analytics
- Analytics service → Domain repositories: reads metrics