Food delivery for Cameroon: a customer app, a restaurant app and a rider app in Flutter, on one Django API.
Flutter
Dart
Django REST
PostgreSQL
Firebase Cloud Messaging
Docker
Context
Avol is a food-delivery product for Cameroon: customers order from local restaurants, restaurants prepare, riders deliver.
The challenge
Three audiences share one order. The customer wants to find food fast and follow the delivery, the restaurant wants orders it can prepare on time, the rider wants clear jobs and earnings.
My role
Built the Django API and the three Flutter apps, plus the container deployment to a VPS.
What I built
Customer app: sign-in by email or phone code and Google, address picker on Google Maps, restaurant map and search, menus, cart, checkout and order history.
Order tracking screen that draws the rider's route on the map.
Restaurant app: sales dashboard with charts, menu management with photos and videos, running orders and reviews.
Rider app: map, active delivery, earnings, wallet and rewards; it streams the rider's GPS position every 10 metres.
API: client, restaurant and rider profiles, menus with ingredients, an eight-status order lifecycle with history and invoices, reviews, vouchers and push notifications (FCM).
Docker images published to GitHub's registry and deployed to the VPS by GitHub Actions.
Results
One Flutter code base per audience, so each feature ships on Android and iOS at once.
Next steps: switch on real mobile-money payments (MTN, Orange, Wave) and the real-time layer for live tracking.
Screens
Customer app: onboarding and order historyRestaurant app: revenue dashboard and running ordersRider app: earnings and performance (demo data)
Need something similar?
I can scope it with you and tell you how I would build it.