Cross Border Logistics — a shipping company in Dar Es Salaam handling international vehicle, air, and sea freight — had no digital system for parcel booking or shipment tracking. Customers had no way to follow their cargo. Everything was managed manually. They needed a working system fast.
The business was handling import freight across multiple shipping modes — air, sea, vehicle — with no centralised record of where a parcel was at any point. Customers called in to ask for updates. Staff looked things up manually. The ask was straightforward: a booking flow where parcels could be registered and a tracking interface where customers could follow their shipment status without contacting the office.
I chose server-side rendering with EJS over a separate frontend framework. A React frontend with a dedicated API would have been more flexible and easier to extend later, but it was more than the project needed and would not have been deliverable in three weeks as a solo freelancer. EJS rendered the tracking views directly from the server — simpler stack, fewer moving parts, delivered on time.
Deliverable within scope over future flexibility.
Looking back, this is a legacy codebase by today's standard. I would rebuild it with a modular architecture — separating route handlers, business logic, and data access properly — and add authentication hardening and input sanitisation that the original version handled too loosely. The system worked for the scope it was built for, but it was not designed to grow. A cleaner foundation from the start would have made that growth possible without a rewrite.