DeliverEat — meal delivery in Dakar
Flutter app (Android, iOS, Linux) to order meals and follow deliveries in Dakar, connected to a REST API and live order tracking.



Ordering a meal means finding a restaurant, building a basket and following the order — even on an unstable connection.
Build a robust mobile client: no hard-coded business data, secure sessions, live tracking, FR/EN and dark mode.
Design and development of the app
Technologies- Flutter
- Dart
- Provider
- Dio
- WebSocket
Technical implementation
Architecture
Flutter / Dart in layers (UI, providers, services, network); generic typed ViewState; Provider.
Networking
Dio with interceptors: authentication, single-flight token refresh, retries on 429 and network errors.
Real time
WebSocket with back-off reconnection and a regenerated token; automatic fallback to REST polling.
Storage and cache
flutter_secure_storage for tokens, cached_network_image, connectivity_plus for offline mode.
Internationalisation
FR / EN localisation, light and dark themes.
- I structured the app in strict layers: UI, typed-state providers, network services, models.
- I handled authentication: tokens in secure storage and transparent refresh, with a lock against double refreshes.
- I implemented order tracking over WebSocket, with back-off reconnection and a fallback to REST polling.
- I added resilience: retries on transient errors, offline banner, image cache, FR/EN error messages.
- Restaurant catalogue and search
- Basket and ordering
- Favourites
- Live order tracking
- Profile, dark mode, FR / EN
- platforms: Android, iOS, Linux
- FR / ENlocalisation
- Application Flutter → API REST DeliverEat
- Application Flutter → WebSocket (suivi)