Waypoint Logistics
A role-based delivery operations platform that follows every order from a store's request to the depot, the dock, the driver and back to the store.
- Year
- 2026
- Role
- Store Manager workspace, end to end: screens, API, data model and migrations
- Context
- Team SynapX — a working build of our Designathon prototype
- Stack
- Next.js · FastAPI · PostgreSQL · Alembic · Keycloak · Docker
The problem
A retail group with two depots, 120 outlets across three chains and a mixed fleet of refrigerated and ambient vehicles has to move goods from a store's request to its shelf. Every step involves a different person: the store manager, the dispatcher, the loader at the dock and the driver. If those hand-offs live in phone calls and spreadsheets, orders get lost between them.
What it does
One platform with a workspace for each role, all behind a single sign-in:
- Store managers request goods and confirm what actually arrived, or report a discrepancy.
- Dispatchers group orders into routes and allocate vehicles. Each vehicle is checked against capacity, temperature, depot, availability, fuel and route timing before it can be chosen.
- Loaders load each run from a checklist, deepest stop first, and flag problems before the truck is released.
- Drivers run their trips and capture proof of delivery (recipient, signature and photo). Their workspace keeps working offline and syncs when the connection returns.
How it works
A Next.js frontend talks to a FastAPI backend over PostgreSQL, with Keycloak handling identity for every role. I built the Store Manager workspace across the whole stack:
- The goods-request flow: items from the outlet's own catalogue, delivery-date rules (two operating days ahead, or next day for high priority before the cutoff), and a date picker that shows already-booked days.
- Receiving and discrepancy reports, including photo uploads.
- The backend API, models and Alembic migrations behind those screens, and connecting dispatch runs back to the store's orders so the store sees real progress.
Decisions
One sign-in for every role. The prototype had loaders pick their name and enter a PIN on a shared tablet. We moved everyone to Keycloak, so there's one login, one session model and one audit trail. To keep the shared-tablet use, the loader workspace keeps a quick Switch user and signs out after 10 minutes of inactivity.
A dock hand-off before loading. A run only reaches the loaders once the dispatcher has sent the vehicle to a dock and the driver has confirmed arriving there. A loader then picks the run, which locks it to them. This stops loading before the truck is there, and stops two loaders working the same run.
Mixed orders split by temperature. A request mixing chilled and ambient goods becomes two orders, one per temperature zone, so each can go on the right vehicle.