How siam-ar/logistics_erp_prototype works
This is a demo Logistics ERP with a read-only dashboard and finance, fleet, and inventory management. Users view module pages backed by MongoDB, submit create/update/delete changes through API routes, and see refreshed data; the dashboard aggregates the same collections into overview metrics. The graph covers the principal pages, domain interfaces, API and persistence layers. Several relationships are documented in the README or SOURCE INDEX; unsampled route details are represented only at the documented module level.
Main entry points: db.ts MongoDB access · dashboard.ts Metrics aggregation · validate.ts Input validation · page.tsx Finance page
Components 21
Finance
- Finance page
src/app/finance/page.tsx - Finance ledger UI
src/components/finance/FinanceLedger.tsx - Entry editor
src/components/finance/AddEntryDrawer.tsx - Finance API
src/app/api/finance/route.ts - Finance item API
src/app/api/finance/[id]/route.ts
Fleet and inventory
- Fleet page
src/app/fleet/page.tsx - Fleet management UI
src/components/fleet/FleetView.tsx - Fleet API
src/app/api/fleet/route.ts - Fleet item API
src/app/api/fleet/[id]/route.ts - Inventory page
src/app/inventory/page.tsx - Inventory management UI
src/components/inventory/InventoryClient.tsx - Inventory API
src/app/api/inventory/route.ts - Inventory item API
src/app/api/inventory/[id]/route.ts
Dashboard and data
- Dashboard page
src/app/page.tsx - Metrics aggregation
src/lib/dashboard.ts - Dashboard panels
src/components/dashboard - Input validation
src/lib/validate.ts - MongoDB access
src/lib/db.ts - Sample data seeding
src/lib/seed.ts
Other components
- Operator
- MongoDB
Connections 35
- Operator → Finance page: opens
- Operator → Fleet page: opens
- Operator → Inventory page: opens
- Operator → Dashboard page: opens
- Finance page → Finance ledger UI: renders
src/app/finance/page.tsx - Fleet page → Fleet management UI: renders
src/app/fleet/page.tsx - Inventory page → Inventory management UI: renders
src/app/inventory/page.tsx - Finance ledger UI → Entry editor: uses
src/components/finance/FinanceLedger.tsx - Entry editor → Finance API: submits entries
- Finance ledger UI → Finance item API: submits changes
- Fleet management UI → Fleet API: submits changes
- Fleet management UI → Fleet item API: submits changes
- Inventory management UI → Inventory API: submits changes
src/components/inventory/InventoryClient.tsx - Inventory management UI → Inventory item API: submits changes
src/components/inventory/InventoryClient.tsx - Finance page → MongoDB: reads
- Fleet page → MongoDB: reads
- Inventory page → MongoDB: reads
- Finance API → MongoDB access: gets database
src/app/api/finance/route.ts - Finance item API → MongoDB access: gets database
src/app/api/finance/[id]/route.ts - Fleet API → Input validation: validates input
src/app/api/fleet/route.ts - Fleet item API → Input validation: validates input
src/app/api/fleet/[id]/route.ts - Inventory API → Input validation: validates input
src/app/api/inventory/route.ts - Inventory item API → Input validation: validates input
src/app/api/inventory/[id]/route.ts - Fleet API → MongoDB access: gets database
src/app/api/fleet/route.ts - Inventory API → MongoDB access: gets database
src/app/api/inventory/route.ts - Finance item API → MongoDB: writes
- Fleet item API → MongoDB: writes
- Inventory item API → MongoDB: writes
- MongoDB access → MongoDB: connects
src/lib/db.ts - Dashboard page → Metrics aggregation: requests metrics
src/app/page.tsx - Metrics aggregation → MongoDB access: queries collections
src/lib/dashboard.ts - Metrics aggregation → Sample data seeding: seeds if empty
src/lib/dashboard.ts - Metrics aggregation → MongoDB: aggregates data
src/lib/dashboard.ts - Dashboard page → Dashboard panels: renders
src/app/page.tsx - Dashboard panels → MongoDB: displays overview