The Context
The client, a specialized logistics provider, managed thousands of incoming freight shipments across multiple warehouse facilities. However, their tracking process was entirely manual. Warehouse managers relied on a combination of shared spreadsheets, endless email threads, and phone calls to reconcile shipping manifests with actual floor inventory.
This fragmentation led to significant delays in tracking updates, miscommunication between shifts, and an inability to provide real-time status updates to their end-customers. They needed a unified operational dashboard to replace the chaos.
The Approach
Instead of trying to build a massive Enterprise Resource Planning (ERP) system from day one, we scoped the project strictly to the core workflow: Visibility and Status Updates.
We started by designing a multi-tenant data architecture. Because different warehouse facilities operated independently, it was crucial that operators only saw the freight assigned to their specific location, while upper management needed a global view.
Technical Decisions
- Framework: We chose Next.js for its robust server-side rendering capabilities and seamless API route integration, which simplified the data fetching layer.
- Database & Real-time: Supabase (PostgreSQL) was utilized not just for relational data integrity, but specifically for its real-time subscription capabilities. When a barcode was scanned on the floor, the dashboard needed to update instantly without a page refresh.
- Event Queues: To ensure no data was dropped during high-volume scanning periods, incoming updates were routed through a reliable job queue before updating the main database.
Implementation & Challenges
One of the primary challenges was handling edge cases in the real physical world. What happens if a package is scanned twice? What if a shipment is marked 'Arrived' but is missing from the manifest?
We built an "Exception Handling" UI specifically for these scenarios. Instead of breaking the system or throwing cryptic errors, the software quarantined problematic scans into an Exception Queue, allowing managers to manually review and resolve discrepancies without stopping the overall workflow.
[!NOTE] "The exception handling workflow was the turning point. It acknowledged that the physical world is messy, and gave our team a clear way to manage that mess without slowing down."
— Director of Operations