08 / Project / Jan 2026 - Apr 2026
Freight Cargo Inventory and Shipment Management System
A databases-first, full-stack platform that models a global freight operation, from warehouses and carriers to shipments, containers and cargo.
- Normalized tables
- 15
- Locations across 6 continents
- 63
- Seeded shipments
- 55
- Seeded containers
- 77
Overview
I led a three-person team to design and build a web platform that models a real-world global freight logistics operation. We started from an Enhanced Entity-Relationship Diagram, converted it into a normalized relational schema and built the application on top, using Next.js, React, TypeScript, Tailwind CSS and Supabase PostgreSQL, deployed on Vercel.
The database
The PostgreSQL database has 15 tables, 2 reporting views, 2 stored functions and an audit trigger, managing shipments, warehouses, containers, cargo, inventory, routes, carriers, locations and users. Every query is direct, parameterized SQL with no ORM, chosen deliberately to keep the database work visible. An inventory function guards against negative quantities and logs each change through the audit trigger, and deletes check for foreign-key references first so no record is left orphaned.
What I built
I connected Supabase authentication to our own user tables with custom role resolution, so login works end to end. On top of that I built the Admin and Warehouse Staff dashboards and the analytics pages, and overhauled user management with approval workflows, admin promotion requests, demotion and a register-as-pending flow, alongside full CRUD across every entity, dark mode and mobile layouts.
To make testing realistic I seeded a global network: 63 locations across six continents, 12 warehouses, 22 carriers, 55 shipments and 77 containers.