Work

Built · APPLICATION DEVELOPMENT

Logistics Operations Platform

I had already built an operations platform for a logistics business in a previous role, run it, and learned where the design bent under real use. This one started from those answers.

8,638 packages and 43,199 parcels processed

  • Laravel 11
  • Filament 3
  • PHP 8.2
  • MySQL
  • DomPDF
  • Tailwind
  • Vite
  • Pest

Live demo login required

Starting state

Spreadsheets and handwritten lists. Packages logged twice, shipments reconstructed from memory, and money moving with parcels tracked in a separate sheet from the parcels themselves.

Domain model

I modelled the business rather than the spreadsheets: clients, packages, shipments, and destinations, with provinces and municipalities as real entities because delivery routing depends on them.

Each package is registered once, grouped into a shipment, and follows a status through to delivery.

What the first version taught me

  • Duplicate pending entries per client were the most common data error, so validation blocks them at intake rather than cleaning them up later.
  • Remittances belong on the package record. Tracking money separately from the parcel it travels with guarantees the two drift.
  • Manifests and labels need to be generated from the same records the operators edit, not exported and reformatted.

Platform

Laravel with Filament for the admin surface, role-based access control, record versioning, user impersonation for support, and a bilingual interface.

Result

8,638 packages and 43,199 parcels have moved through it, with shipment history and generated manifests for each.

Evidence

Screenshots are from running systems. Client names, user identities, addresses, and financial values are redacted.

Operations dashboard. Volume figures shown; client financial totals redacted.
Operations dashboard. Volume figures shown; client financial totals redacted.
Shipment history with generated manifests. Operator names and remittance values redacted.
Shipment history with generated manifests. Operator names and remittance values redacted.