Platform·MMXXIV — MMXXV
Saafi
Know where every device is, and why
- Year
- MMXXIV — MMXXV
- Role
- Full-stack engineering
- Live
- Private deployment
I·Context
Device fleets spread across branches lived in spreadsheets. Nobody knew which unit was where, what it was still worth, or who had moved it.
II·What I did
- I
Modelled the whole network: region, sector, zone and, at the end, a store or a warehouse.
- II
Turned transfers into a formal workflow with approval and three signatures.
- III
Two interfaces over one backend: a Filament admin panel and an Inertia and Vue portal.
How it is built
- Lifecycle
- Every unit moves through fresh, active, deprecated and discarded as a state machine; invalid transitions simply don't exist. Depreciation is computed from original cost and useful life.
- Transfers
- Relocation, warranty or renewal. Pending, in progress, approved or rejected, completed or cancelled. Signed by whoever carries it, whoever authorises it and the store manager.
- Polymorphic location
- A unit can live in a store or a warehouse through one relationship, so moving between them is a single operation.
- Audit trail
- A transfer is processed on a queue and groups all of its changes into one audit-log batch. Deletes are soft: history is never lost.
- Access
- Fine-grained roles and permissions, a second factor, Microsoft and Zoho sign-in, and a token API with generated documentation.
- My own packages
- I wrote the fields and tools Filament didn't ship: barcode scanning, Excel import, an activity timeline, filters and metadata.
III·What I learned
“Tracking assets is really tracking accountability.”
Tools
Laravel 12·
Next work
Meal Planner
Plan the week and the shopping list writes itself