# sep490-gfa26se68/loadmaster_be architecture

> Architecture diagram of the GitHub repository sep490-gfa26se68/loadmaster_be, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sep490-gfa26se68/loadmaster_be
- Repository: https://github.com/sep490-gfa26se68/loadmaster_be

## Overview

LoadMaster is a logistics platform whose main workflow manages transport data in the Spring service, validates trips and submits asynchronous 3D packing jobs to the FastAPI service, then returns plans and progress for operational use. The README documents further execution, billing, identity, and support capabilities. Sampled code confirms FastAPI routing, trip validation, job submission, persistence, and notifications; links for broader Spring workflows and unsampled optimization features follow README documentation rather than inspected call sites.

Main entry points: [`OptimizeService/app/controller/optimization`](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/OptimizeService/app/controller/optimization) (Optimization API), [`LoadMasterService/src/main/java/fu/se184491/loadmaster_be`](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be) (Core API), [`OptimizeService/app/service/optimize/async_optimization_runner.py`](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/async_optimization_runner.py) (Async runner), [`OptimizeService/app/service/optimize/optimization_job_service.py`](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/optimization_job_service.py) (Job management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Business management"]
  node_core_api["Core API"]
  node_fleet_cargo["Fleet and cargo"]
  node_orders_trips["Orders and trips"]
  node_core_db[("Core data")]
end

subgraph group_optimization["Optimization workflow"]
  node_opt_api["Optimization API"]
  node_trip_validation["Trip validation"]
  node_job_service["Job management"]
  node_async_runner["Async runner"]
  node_engine_client["Engine client"]
  node_packing_engine["3D packing"]
  node_result_persistence["Plan persistence"]
  node_optimization_store[("Optimization data")]
  node_notifications["Job notifications"]
  node_load_plans["Plan review"]
end

subgraph group_operations["Logistics operations"]
  node_lifocheck["LIFO approval"]
  node_warehouse["Warehouse loading"]
  node_delivery["Delivery execution<br/>[DeliveryStop.java]"]
end

subgraph group_commercial["Accounts and commerce"]
  node_identity["Identity and access"]
  node_billing["Subscriptions and billing<br/>[Subscription.java]"]
  node_support["Customer support<br/>[SupportTicket.java]"]
end

node_frontend(("Frontend user"))
node_websocket(("WebSocket client"))

node_frontend -->|"manages logistics"| node_core_api
node_core_api -->|"manages master data"| node_fleet_cargo
node_core_api -->|"manages dispatch"| node_orders_trips
node_core_api -->|"reads and writes"| node_core_db
node_core_api -->|"submits jobs"| node_opt_api
node_opt_api -->|"validates trips"| node_trip_validation
node_opt_api -->|"creates jobs"| node_job_service
node_opt_api -->|"dispatches background"| node_async_runner
node_async_runner -->|"requests computation"| node_engine_client
node_engine_client -->|"sends packing problem"| node_packing_engine
node_async_runner -->|"persists results"| node_result_persistence
node_result_persistence -->|"writes plans"| node_optimization_store
node_job_service -->|"reads and writes jobs"| node_optimization_store
node_async_runner -->|"publishes status"| node_notifications
node_websocket -->|"receives updates"| node_notifications
node_frontend -->|"requests plans"| node_opt_api
node_opt_api -->|"retrieves plans"| node_load_plans
node_load_plans -->|"supports approval"| node_lifocheck
node_frontend -->|"executes loading"| node_warehouse
node_frontend -->|"confirms deliveries"| node_delivery
node_frontend -->|"authenticates"| node_identity
node_frontend -->|"manages subscription"| node_billing
node_frontend -->|"opens tickets"| node_support

click node_core_api "https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be"
click node_fleet_cargo "https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity"
click node_orders_trips "https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/order"
click node_opt_api "https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/OptimizeService/app/controller/optimization"
click node_trip_validation "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/trip_validation_service.py"
click node_job_service "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/optimization_job_service.py"
click node_async_runner "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/async_optimization_runner.py"
click node_engine_client "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/optimization_client.py"
click node_packing_engine "https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/OptimizeService/app/service/optimize"
click node_result_persistence "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/optimization_result_persistence_service.py"
click node_optimization_store "https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/OptimizeService/app/repository/optimization"
click node_notifications "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/job_notification_service.py"
click node_load_plans "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/load_plan_service.py"
click node_lifocheck "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/controller/optimization/load_plan_router.py"
click node_warehouse "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/optimization/LoadingExecution.java"
click node_delivery "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/trip/DeliveryStop.java"
click node_identity "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/config/WebSecurityConfig.java"
click node_billing "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/billing/Subscription.java"
click node_support "https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/support/SupportTicket.java"
click node_core_db "https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_core_api,node_fleet_cargo,node_orders_trips,node_core_db,node_frontend,node_websocket toneBlue
class node_opt_api,node_trip_validation,node_job_service,node_async_runner,node_engine_client,node_packing_engine,node_result_persistence,node_optimization_store,node_notifications,node_load_plans toneAmber
class node_lifocheck,node_warehouse,node_delivery toneMint
class node_identity,node_billing,node_support toneRose
```

## Components

### Business management

- [Core API](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be`
- [Fleet and cargo](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity`
- [Orders and trips](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/order): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/order`
- [Core data](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity`

### Optimization workflow

- [Optimization API](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/OptimizeService/app/controller/optimization): `OptimizeService/app/controller/optimization`
- [Trip validation](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/trip_validation_service.py): `OptimizeService/app/service/optimize/trip_validation_service.py`
- [Job management](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/optimization_job_service.py): `OptimizeService/app/service/optimize/optimization_job_service.py`
- [Async runner](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/async_optimization_runner.py): `OptimizeService/app/service/optimize/async_optimization_runner.py`
- [Engine client](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/optimization_client.py): `OptimizeService/app/service/optimize/optimization_client.py`
- [3D packing](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/OptimizeService/app/service/optimize): `OptimizeService/app/service/optimize`
- [Plan persistence](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/optimization_result_persistence_service.py): `OptimizeService/app/service/optimize/optimization_result_persistence_service.py`
- [Optimization data](https://github.com/sep490-gfa26se68/loadmaster_be/tree/main/OptimizeService/app/repository/optimization): `OptimizeService/app/repository/optimization`
- [Job notifications](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/job_notification_service.py): `OptimizeService/app/service/optimize/job_notification_service.py`
- [Plan review](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/service/optimize/load_plan_service.py): `OptimizeService/app/service/optimize/load_plan_service.py`

### Logistics operations

- [LIFO approval](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/OptimizeService/app/controller/optimization/load_plan_router.py): `OptimizeService/app/controller/optimization/load_plan_router.py`
- [Warehouse loading](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/optimization/LoadingExecution.java): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/optimization/LoadingExecution.java`
- [Delivery execution](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/trip/DeliveryStop.java): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/trip/DeliveryStop.java`

### Accounts and commerce

- [Identity and access](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/config/WebSecurityConfig.java): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/config/WebSecurityConfig.java`
- [Subscriptions and billing](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/billing/Subscription.java): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/billing/Subscription.java`
- [Customer support](https://github.com/sep490-gfa26se68/loadmaster_be/blob/main/LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/support/SupportTicket.java): `LoadMasterService/src/main/java/fu/se184491/loadmaster_be/entity/support/SupportTicket.java`

### Other components

- **Frontend user**
- **WebSocket client**

## Connections

- Frontend user → Core API: manages logistics
- Core API → Fleet and cargo: manages master data
- Core API → Orders and trips: manages dispatch
- Core API → Core data: reads and writes
- Core API → Optimization API: submits jobs
- Optimization API → Trip validation: validates trips
- Optimization API → Job management: creates jobs
- Optimization API → Async runner: dispatches background
- Async runner → Engine client: requests computation
- Engine client → 3D packing: sends packing problem
- Async runner → Plan persistence: persists results
- Plan persistence → Optimization data: writes plans
- Job management → Optimization data: reads and writes jobs
- Async runner → Job notifications: publishes status
- WebSocket client → Job notifications: receives updates
- Frontend user → Optimization API: requests plans
- Optimization API → Plan review: retrieves plans
- Plan review → LIFO approval: supports approval
- Frontend user → Warehouse loading: executes loading
- Frontend user → Delivery execution: confirms deliveries
- Frontend user → Identity and access: authenticates
- Frontend user → Subscriptions and billing: manages subscription
- Frontend user → Customer support: opens tickets
