System Overview

How Zola works

Zola is a South African minibus-taxi platform. It connects passengers waiting along a route with the drivers already driving it — rather than dispatching a car to fetch one person, the way an e-hailing service does.

That difference shapes everything else. A taxi runs a route with many seats, so the question the system answers is not “which driver is nearest” but “who is on my way”.

This page is a high-level summary of the design. It describes what the system does and why, not how it is built.

The apps

Three pieces, two audiences.

Zola Driving — for drivers

A driver sets the route they are running and how far off it they are willing to collect. The app shows waiting passengers along that corridor, lets the driver add them as stops in order, and hands the finished route to turn-by-turn navigation.

Zola — for passengers

A passenger says where they want collecting, then watches the assigned taxi approach in real time and can message the driver on the way.

Admin

An internal dashboard for the team: who has signed up, which drivers are active, and how usage is trending.

How it fits together

Both apps are Android apps that talk to one shared hosted database and to a mapping service for routes and directions. There is no server of our own in between.

1
The apps — driver and passenger, each built from its own codebase, installed on Android phones.
2
Shared data — a single hosted database both apps read and write, which also pushes changes out to them as they happen.
3
Sign-in — a managed identity service, so neither app handles passwords itself.
4
Maps — an external mapping service for places, routes and directions.

The part worth understanding is the shared data. Both apps are clients of the same records, so a passenger setting a pick-up point and a driver seeing it are one record viewed from two sides. That keeps the system simple, and makes agreement between the two apps a design concern rather than an afterthought.

A normal ride

1
The passenger marks where they want collecting — where they are standing, or a spot they pick on the map.
2
A driver running a matching route sees them, along with everyone else waiting within range of it.
3
The driver adds the passengers they want as stops, and the app orders them sensibly along the way.
4
The passenger watches the taxi approach, and can message the driver.
5
The driver navigates the route, collects, and ends the trip.

Range, and why it is a corridor

A driver chooses how far from their route they are willing to collect. That range is drawn as a band following the road rather than a chain of circles: it reads more clearly, it is one shape for the phone to draw instead of dozens, and on a long intercity route it widens automatically so the band stays visible and the catchment stays sensible.

Special trips

Sometimes a passenger wants the whole taxi for a journey that is on nobody’s normal route — a funeral, a group outing, a delivery run. That is a charter.

1
The passenger posts where they are going, what they need, and a number for the driver to contact.
2
Drivers who have opted in see it, filtered to pick-ups within the distance each is willing to travel.
3
Interested drivers message the passenger. Each conversation is separate — drivers cannot see each other’s offers.
4
The passenger picks a driver, and the request closes to everyone else.
Zola does not set the price. It is agreed between passenger and driver in the conversation. The platform records who agreed, not what they agreed.

What we store

Only what a trip needs in order to happen.

  • Accounts — name, email and contact number for drivers and passengers, plus vehicle details for drivers.
  • Trips — routes, pick-up points, and the stops on a journey.
  • Position — a driver’s live location while they are driving, so passengers can watch the taxi approach.
  • Messages — what passengers and drivers send each other about a trip.

Location is the sensitive part, and it is shared only while it is needed: a driver broadcasts position while a trip is running, and a passenger shares a pick-up point so they can be collected.

Zola operates in South Africa, so POPIA governs how this data is handled — not GDPR or CCPA.

How it ships

Both apps are Android-only for now, built in the cloud and distributed two ways:

  • Direct download — an installable file from the download section, used while the apps are in testing with taxi associations.
  • Google Play — the route once public testing opens.

iPhone is not supported yet.

Where it is now

Zola is in testing with taxi associations rather than open to the public. Both apps work end to end: passengers are matched to drivers on live routes, trips run with navigation, and charters can be posted, negotiated and confirmed.

Work in progress, in rough order:

  • Hardening access to the shared data ahead of a public release.
  • Alerting drivers to new charter requests when the app is not open.
  • Narrowing what each app loads, so the system stays efficient as the number of drivers and passengers grows.
  • Play Store listings for both apps.