# farizmawarid/wms-lara-admin architecture

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

- Interactive diagram: https://gitdiagram.com/farizmawarid/wms-lara-admin
- Repository: https://github.com/farizmawarid/wms-lara-admin

## Overview

ESGI System is a garment-factory operations application combining NECO needle traceability and finish-goods warehouse management, with IE workforce planning and reporting as a further business area. The main workflows run from needle stock, requests, loans and exchanges to traceable reports, and from carton receipt through rack allocation, moves and dispatch to stock dashboards. The README documents additional capabilities such as RFID/barcode scanning, exchange evidence capture, RBAC and factory-specific access. Routes and much of the NECO/IE implementation were not sampled, so uncertain call wiring is omitted.

Main entry points: [`routes/web.php`](https://github.com/farizmawarid/wms-lara-admin/blob/main/routes/web.php) (Web routes), [`app/Models/NeedleStockTransaction.php`](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/NeedleStockTransaction.php) (Needle records), [`app/Http/Controllers/NeedleLoanHandNeedleController.php`](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NeedleLoanHandNeedleController.php) (Needle operations), [`app/Http/Controllers/NeedleExchangeController.php`](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NeedleExchangeController.php) (Needle exchange)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access &amp; Factory"]
  node_login["Login"]
  node_factory_switch["Factory database switch"]
  node_permissions["Role &amp; permission checks"]
  node_user_store[("Users &amp; factory access<br/>[User.php]")]
end

subgraph group_neco["NECO Needle Control"]
  node_neco_ops["Needle operations"]
  node_neco_stock["Needle stock service"]
  node_needle_store[("Needle records")]
  node_neco_exchange["Needle exchange"]
  node_neco_reports["NECO reports"]
  node_neco_dashboard["NECO dashboard"]
end

subgraph group_warehouse["Finish Goods WMS"]
  node_warehouse_ops["Carton transactions"]
  node_product_import["Product data import"]
  node_warehouse_store[("Carton, rack &amp; transactions")]
  node_warehouse_reports["Warehouse reports"]
  node_rack_dashboard["Rack token dashboard"]
end

subgraph group_ie["IE Workforce"]
  node_ie_ops["Jumper attendance"]
  node_ie_store[("Workforce transactions")]
  node_ie_projects["IE projects &amp; logs"]
  node_ie_reports["Working-hours reports"]
end

node_operator(("Factory staff"))
node_routes["Web routes<br/>[web.php]"]
node_rfid(("RFID / barcode devices"))
node_camera(("Browser camera"))

node_operator -->|"uses"| node_routes
node_routes -->|"dispatches"| node_login
node_login -->|"checks access"| node_user_store
node_routes -->|"runs middleware"| node_factory_switch
node_routes -->|"checks permissions"| node_permissions
node_operator -->|"borrows / returns"| node_neco_ops
node_routes -->|"dispatches"| node_neco_ops
node_neco_ops -->|"reads / writes"| node_needle_store
node_neco_ops -.->|"scans IDs"| node_rfid
node_operator -->|"requests stock"| node_neco_stock
node_routes -->|"dispatches"| node_neco_stock
node_neco_stock -->|"updates stock"| node_needle_store
node_operator -->|"records exchange"| node_neco_exchange
node_routes -->|"dispatches"| node_neco_exchange
node_neco_exchange -->|"records exchange"| node_needle_store
node_neco_exchange -.->|"captures evidence"| node_camera
node_operator -->|"views reports"| node_neco_reports
node_routes -->|"dispatches"| node_neco_reports
node_neco_reports -->|"queries history"| node_needle_store
node_routes -->|"dispatches"| node_neco_dashboard
node_neco_dashboard -->|"queries activity"| node_needle_store
node_operator -->|"handles cartons"| node_warehouse_ops
node_routes -->|"dispatches"| node_warehouse_ops
node_warehouse_ops -->|"reads / writes"| node_warehouse_store
node_rfid -.->|"scans barcodes"| node_warehouse_ops
node_operator -->|"imports product data"| node_product_import
node_product_import -->|"updates product records"| node_warehouse_store
node_routes -->|"dispatches"| node_warehouse_reports
node_warehouse_reports -->|"queries transactions"| node_warehouse_store
node_operator -->|"views public display"| node_rack_dashboard
node_routes -->|"dispatches"| node_rack_dashboard
node_operator -->|"records attendance"| node_ie_ops
node_routes -->|"dispatches"| node_ie_ops
node_ie_ops -->|"reads / writes"| node_ie_store
node_operator -->|"manages projects"| node_ie_projects
node_routes -->|"dispatches"| node_ie_projects
node_routes -->|"dispatches"| node_ie_reports
node_ie_reports -->|"queries attendance"| node_ie_store

click node_routes "https://github.com/farizmawarid/wms-lara-admin/blob/main/routes/web.php"
click node_login "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/Auth/LoginController.php"
click node_factory_switch "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Middleware/SwitchFactoryDatabase.php"
click node_permissions "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Middleware/PermissionMiddleware.php"
click node_user_store "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/User.php"
click node_neco_ops "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NeedleLoanHandNeedleController.php"
click node_neco_stock "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Services/NeedleStockService.php"
click node_needle_store "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/NeedleStockTransaction.php"
click node_neco_exchange "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NeedleExchangeController.php"
click node_neco_reports "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/ReportNeedleExchangeController.php"
click node_neco_dashboard "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NecoDashboardController.php"
click node_warehouse_ops "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/FinishGoodsTransactionController.php"
click node_product_import "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Services/ProductTypeImportService.php"
click node_warehouse_store "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/FinishGoodsTransaction.php"
click node_warehouse_reports "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/FinishGoodsTransactionController.php"
click node_rack_dashboard "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/RackTokenDashboardController.php"
click node_ie_ops "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/IeManPowerJumperController.php"
click node_ie_store "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/ManPowerJumperTransaction.php"
click node_ie_projects "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/IeProjectController.php"
click node_ie_reports "https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/IeManPowerJumperController.php"

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_login,node_factory_switch,node_permissions,node_user_store,node_camera toneBlue
class node_neco_ops,node_neco_stock,node_needle_store,node_neco_exchange,node_neco_reports,node_neco_dashboard toneAmber
class node_warehouse_ops,node_product_import,node_warehouse_store,node_warehouse_reports,node_rack_dashboard,node_routes toneMint
class node_ie_ops,node_ie_store,node_ie_projects,node_ie_reports toneRose
class node_operator,node_rfid toneIndigo
```

## Components

### Access & Factory

- [Login](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/Auth/LoginController.php): `app/Http/Controllers/Auth/LoginController.php`
- [Factory database switch](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Middleware/SwitchFactoryDatabase.php): `app/Http/Middleware/SwitchFactoryDatabase.php`
- [Role & permission checks](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Middleware/PermissionMiddleware.php): `app/Http/Middleware/PermissionMiddleware.php`
- [Users & factory access](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/User.php): `app/Models/User.php`

### NECO Needle Control

- [Needle operations](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NeedleLoanHandNeedleController.php): `app/Http/Controllers/NeedleLoanHandNeedleController.php`
- [Needle stock service](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Services/NeedleStockService.php): `app/Services/NeedleStockService.php`
- [Needle records](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/NeedleStockTransaction.php): `app/Models/NeedleStockTransaction.php`
- [Needle exchange](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NeedleExchangeController.php): `app/Http/Controllers/NeedleExchangeController.php`
- [NECO reports](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/ReportNeedleExchangeController.php): `app/Http/Controllers/ReportNeedleExchangeController.php`
- [NECO dashboard](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/NecoDashboardController.php): `app/Http/Controllers/NecoDashboardController.php`

### Finish Goods WMS

- [Carton transactions](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/FinishGoodsTransactionController.php): `app/Http/Controllers/FinishGoodsTransactionController.php`
- [Product data import](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Services/ProductTypeImportService.php): `app/Services/ProductTypeImportService.php`
- [Carton, rack & transactions](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/FinishGoodsTransaction.php): `app/Models/FinishGoodsTransaction.php`
- [Warehouse reports](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/FinishGoodsTransactionController.php): `app/Http/Controllers/FinishGoodsTransactionController.php`
- [Rack token dashboard](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/RackTokenDashboardController.php): `app/Http/Controllers/RackTokenDashboardController.php`

### IE Workforce

- [Jumper attendance](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/IeManPowerJumperController.php): `app/Http/Controllers/IeManPowerJumperController.php`
- [Workforce transactions](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Models/ManPowerJumperTransaction.php): `app/Models/ManPowerJumperTransaction.php`
- [IE projects & logs](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/IeProjectController.php): `app/Http/Controllers/IeProjectController.php`
- [Working-hours reports](https://github.com/farizmawarid/wms-lara-admin/blob/main/app/Http/Controllers/IeManPowerJumperController.php): `app/Http/Controllers/IeManPowerJumperController.php`

### Other components

- **Factory staff**
- [Web routes](https://github.com/farizmawarid/wms-lara-admin/blob/main/routes/web.php): `routes/web.php`
- **RFID / barcode devices**
- **Browser camera**

## Connections

- Factory staff → Web routes: uses
- Web routes → Login: dispatches
- Login → Users & factory access: checks access
- Web routes → Factory database switch: runs middleware
- Web routes → Role & permission checks: checks permissions
- Factory staff → Needle operations: borrows / returns
- Web routes → Needle operations: dispatches
- Needle operations → Needle records: reads / writes
- Needle operations → RFID / barcode devices: scans IDs
- Factory staff → Needle stock service: requests stock
- Web routes → Needle stock service: dispatches
- Needle stock service → Needle records: updates stock
- Factory staff → Needle exchange: records exchange
- Web routes → Needle exchange: dispatches
- Needle exchange → Needle records: records exchange
- Needle exchange → Browser camera: captures evidence
- Factory staff → NECO reports: views reports
- Web routes → NECO reports: dispatches
- NECO reports → Needle records: queries history
- Web routes → NECO dashboard: dispatches
- NECO dashboard → Needle records: queries activity
- Factory staff → Carton transactions: handles cartons
- Web routes → Carton transactions: dispatches
- Carton transactions → Carton, rack & transactions: reads / writes
- RFID / barcode devices → Carton transactions: scans barcodes
- Factory staff → Product data import: imports product data
- Product data import → Carton, rack & transactions: updates product records
- Web routes → Warehouse reports: dispatches
- Warehouse reports → Carton, rack & transactions: queries transactions
- Factory staff → Rack token dashboard: views public display
- Web routes → Rack token dashboard: dispatches
- Factory staff → Jumper attendance: records attendance
- Web routes → Jumper attendance: dispatches
- Jumper attendance → Workforce transactions: reads / writes
- Factory staff → IE projects & logs: manages projects
- Web routes → IE projects & logs: dispatches
- Web routes → Working-hours reports: dispatches
- Working-hours reports → Workforce transactions: queries attendance
