Mobile & MobilityEN COURSFeatured case study

Naana Covoiturage — Mobilité partagée Bamako & Mali

Application mobile de covoiturage : recherche, publication de trajets, réservations, messagerie et carte Google Maps

Projet de covoiturage mobile visant à fluidifier les déplacements urbains et interrégionaux au Mali. L’app expose un parcours conducteur/passager complet : publication de trajets (avec arrêts et récurrence), recherche filtrée, réservation (automatique ou manuelle), messagerie, notation et modération. Côté technique : React Native / Expo, navigation par onglets et stack, couche services découplée (trajets, messages, ratings, notifications), Firebase Auth + Firestore, Google Maps, et pipeline de build Android via EAS. Réponse à un besoin réel de mobilité urbaine et régionale : trajets plus accessibles, coûts partagés, usage ciblé sur les quartiers de Bamako et les régions du pays.

Full-Stack MobileFirebase Auth OTPGoogle MapsEAS BuildContextualisé Mali

Stack & architecture

Couches techniques qui portent le produit en production.

  • Mobile : React Native, Expo SDK 54, React Navigation (Tabs + Stack)
  • UI / UX : Design system maison (theme/tokens), Reanimated, Google Maps
  • Backend : Firebase Auth (OTP téléphone) + Cloud Firestore (+ règles sécurité)
  • Organisation : screens → services métier → utils/data → AuthCtx + firebase.js
  • Dossiers : src/screens, components, services, contexts, navigation, utils, data, theme
  • Navigation : 5 onglets (Accueil, Rechercher, Proposer, Messages, Profil) + Stack secondaire
  • Services : notifications push, géolocalisation, Sentry
  • Build : EAS Build (APK/AAB), config native Google Maps Android

Fonctionnalités clés

Recherche intelligente — filtres lieux, date, passagers, préférences
Publication de trajets — arrêts, prix FCFA, récurrence, places
Réservations — mode auto ou validation conducteur
Carte interactive — visualisation des trajets (Google Maps)
Messagerie liée aux réservations
Auth téléphone (OTP Firebase)
Confiance & sécurité — notes, signalements, blocage
Notifications — demandes, confirmations, annulations

Défis & solutions

Challenge

Offrir une expérience covoiturage complète (recherche, offre, réservation, chat) sans backend custom lourd, tout en restant sécurisé.

Solution

Architecture Firebase-first : Auth OTP + Firestore, services métier découplés (ridesService, messagesService…) et règles Firestore strictes (rôles conducteur/passager, ajustement de places, participants).

Challenge

Afficher des trajets géolocalisés fiables sur Android (tuiles Maps + layout carte) dans un build Expo managé.

Solution

Injection de la clé Google Maps via app.config.js / EAS, composant RideRoutesMap (PROVIDER_GOOGLE), et configuration native google-services pour les builds production.

Challenge

Gérer confiance et abus entre utilisateurs inconnus sur un marché local.

Solution

Modules ratings, signalements et blocage (moderationService) intégrés au parcours profil / conversation, avec filtrage des trajets des pairs bloqués.

Résultats & impact

  • Application full-stack mobile (UI + backend Firebase + règles Firestore).
  • Produit géolocalisé et contextualisé Mali / Bamako (quartiers + régions).
  • Architecture modulaire : écrans / services / utils / thème.
  • Prise en compte production : EAS, Maps API, Sentry, permissions natives.
  • UX complète : splash, design system, états vides, skeletons.

Stack tags

React NativeExpo 54FirebaseFirestoreAuth OTPGoogle MapsEAS BuildSentryCovoiturage