Problem
South African pharma logistics runs on trust signalled by paperwork: scanned PODs, emailed temperature spreadsheets, monthly invoices arriving with line items the client cannot verify. When something goes wrong — a missed cold-chain reading, a late delivery to a hospital pharmacy — the conversation starts after the damage is done, often via WhatsApp, with neither side holding the same evidence.
The brief was to make the evidence the interface: every claim the system makes must be backed by a timestamped record the client can download themselves, in real time, without needing to ask.
Approach
A single portal with eleven roles, one login, role-aware navigation and scoped data access. There is no separate "driver app" and no separate "client portal" — they are the same application showing different surfaces.
Built around ten functional pillars:
- Daily route manifest & dispatch
- Live GPS tracking via Cartrack
- Electronic Proof of Delivery (photo + signature + GPS + timestamp)
- Cold-chain temperature logging via LogTag, auto-generating PDF certificates
- Monthly transparent invoice (per-pharmacy-per-day, VAT-compliant)
- Client dashboard (live map, today's deliveries, MTD spend, exceptions)
- Exception reporting with WhatsApp escalation before the branch complains
- Driver execution flow (route, navigate, scan, capture, deliver, confirm)
- Pricing engine (zone × service multiplier × fuel clause, fully data-driven)
- Fleet & compliance register (vehicles, drivers, certificate expiries, alerts)
Design principles drove every trade-off:
- Show, don't report. If it can be seen live on a map, it is not summarised in an email later.
- The exception is the interface. On a normal day the dashboard is quiet; the moment something deviates, the system becomes loud.
- Keyboard over clicks. Dispatchers use this for eight hours a day — fluency wins over discoverability.
- Offline is not a bug for drivers. The driver flow survives a tunnel, a basement, a rural dead-zone.
Outcome
- A single codebase serving Hazchem operations, multiple tenants and their drivers, with row-level scoping by tenant and by role.
- Automated SAHPRA-ready evidence pack per delivery — no manual assembly, no end-of-month scramble.
- Real-time exception escalation that beats the customer's complaint to the inbox.
- A pricing engine clients can audit line-by-line, ending the monthly invoice argument.