How systemivan/17soat-workshop-management-system works
The repository is a Spring Boot modular monolith for managing a vehicle-repair workshop. The main workflow registers customers and vehicles, records a service order and diagnosis, generates and decides an estimate, then tracks execution through completion and vehicle delivery; stock requirements, reservations, and procurement support that lifecycle. Each module separates web, application, domain, and persistence responsibilities. The README documents MySQL-backed state, in-process module APIs, and Spring events; the graph reflects those documented boundaries. Several subsystem paths are represented by their existing enclosing directories because their implementation was not sampled.
Main entry points: serviceorder Diagnosis and execution · usecase Estimate decisions · ServiceOrderController.java Service order API · stockprocurement Demand and procurement
Components 22
Identity
- Authentication API
src/main/java/br/com/fiap/workshop_management_system/identity/auth/infrastructure/web/AuthController.java - Account and login
src/main/java/br/com/fiap/workshop_management_system/identity/auth/application/usecase - JWT security
src/main/java/br/com/fiap/workshop_management_system/identity
Registration
- Customer API
src/main/java/br/com/fiap/workshop_management_system/registration/customer/infrastructure/web/CustomerController.java - Customer management
src/main/java/br/com/fiap/workshop_management_system/registration/customer/application/usecase - Vehicle API
src/main/java/br/com/fiap/workshop_management_system/registration/vehicle/infrastructure/web/VehicleController.java - Vehicle management
src/main/java/br/com/fiap/workshop_management_system/registration/vehicle/application/usecase - Service catalog API
src/main/java/br/com/fiap/workshop_management_system/registration/servicecatalog/infrastructure/web/CatalogServiceController.java - Catalog management
src/main/java/br/com/fiap/workshop_management_system/registration/servicecatalog/application/usecase
Service lifecycle
- Service order API
src/main/java/br/com/fiap/workshop_management_system/servicelifecycle/serviceorder/infrastructure/web/ServiceOrderController.java - Diagnosis and execution
src/main/java/br/com/fiap/workshop_management_system/servicelifecycle/serviceorder - Estimate API
src/main/java/br/com/fiap/workshop_management_system/servicelifecycle/estimate/infrastructure/web/EstimateController.java - Estimate decisions
src/main/java/br/com/fiap/workshop_management_system/servicelifecycle/estimate/application/usecase - Estimate notification
src/main/java/br/com/fiap/workshop_management_system/servicelifecycle/estimate/notification/application - Execution metrics
src/main/java/br/com/fiap/workshop_management_system/servicelifecycle/serviceorder/application/usecase/GetAverageServiceExecutionTimeUseCase.java
Stock procurement
- Stock item API
src/main/java/br/com/fiap/workshop_management_system/stockprocurement/stock/infrastructure/web/StockItemController.java - Stock and reservations
src/main/java/br/com/fiap/workshop_management_system/stockprocurement/stock - Purchase order API
src/main/java/br/com/fiap/workshop_management_system/stockprocurement/purchaseorder/infrastructure/web/PurchaseOrderController.java - Demand and procurement
src/main/java/br/com/fiap/workshop_management_system/stockprocurement
Platform
- MySQL database
Other components
- Admin or staff
- Supplier simulator
Connections 30
- Admin or staff → Authentication API: authenticates
- Authentication API → Account and login: invokes
- Admin or staff → Customer API: manages customers
- Customer API → Customer management: invokes
- Admin or staff → Vehicle API: manages vehicles
- Vehicle API → Vehicle management: invokes
- Admin or staff → Service catalog API: manages services
- Service catalog API → Catalog management: invokes
- Admin or staff → Service order API: opens and tracks
- Service order API → Diagnosis and execution: invokes
- Admin or staff → Estimate API: reviews estimate
- Estimate API → Estimate decisions: invokes
- Diagnosis and execution → Estimate decisions: requests estimate
- Estimate decisions → Estimate notification: publishes event
- Admin or staff → Stock item API: manages stock
- Stock item API → Stock and reservations: invokes
- Diagnosis and execution → Stock and reservations: requests reservations
- Admin or staff → Purchase order API: manages purchases
- Purchase order API → Demand and procurement: invokes
- Demand and procurement → Supplier simulator: integrates
- Service order API → Execution metrics: invokes metrics
- Customer management → MySQL database: reads and writes
- Vehicle management → MySQL database: reads and writes
- Catalog management → MySQL database: reads and writes
- Account and login → MySQL database: reads and writes
- Diagnosis and execution → MySQL database: reads and writes
- Estimate decisions → MySQL database: reads and writes
- Stock and reservations → MySQL database: reads and writes
- Demand and procurement → MySQL database: reads and writes
- JWT security → Account and login: issues tokens