Dolna Drive — Ride-Hailing Platform
Separate apps for riders and drivers over one backend, with phone verification and device binding at signup.
Ride-hailing has two completely different users who cannot share an application. A rider wants to book and track a trip; a driver needs vehicle records, verification and job flow. Building one app that does both produces a worse experience for each. The harder problem is trust at the edges: drivers must be verifiable people with verifiable vehicles before they carry passengers, and phone-based signup in a market where numbers are cheap and disposable invites duplicate and throwaway accounts. Neither problem is solved by an account form alone.
A Django REST backend serving two native Android applications — one for riders, one for drivers — from a shared API. Identity is layered: a single account model carries a role, with distinct rider and driver profiles behind it, so one authentication path serves both apps without either seeing the other's data. Riders register with the usual personal details; drivers additionally record national ID and photo, and register their vehicle separately with model, type, registration number, colour, condition, air conditioning and photographs — so vehicle verification is its own record rather than free text on a driver profile. Signup runs through OTP with a token exchange and resend tracking, and a device verification model binds registration to a specific handset by serial and device identifier, which is what makes throwaway account creation costly rather than free. Firebase identifiers link platform accounts to the mobile clients.
Outcome
A complete ride-hailing stack — REST API plus two separate native Android clients — covering rider and driver registration, driver identity and vehicle records, phone verification with device binding, and profile management across both roles.
Key features
- Two separate native Android apps — rider and driver — over one shared API
- Single role-carrying account model with distinct rider and driver profiles
- Driver records with national ID and photo for verification
- Vehicle records held separately, with model, type, registration, colour, condition, AC and photos
- OTP registration with token exchange and resend tracking
- Device verification binding an account to a specific handset by serial and device identifier
- Firebase identity linking between platform accounts and mobile clients
- Full CRUD API for riders, drivers and vehicles
- Custom email and phone-based authentication
Tech stack
Build something similar?
Tell us about your project. We'll share how we'd approach it.
Start a project