🚌 GbakaMap - Application mobile Flutter pour localiser les arrêts de transport public en Côte d'Ivoire. Trouve facilement les arrêts de gbaka, bus et taxi à proximité, calcule des itinéraires optimisés et permet les signalements communautaires. Backend Next.js + PostgreSQL + OpenStreetMap.
# 🚌 GbakaMap
> Application mobile Flutter pour localiser les arrêts de transport public en Côte d'Ivoire
## 📱 Aperçu
GbakaMap est une application mobile qui révolutionne les transports publics en Côte d'Ivoire en permettant aux utilisateurs de :
- 🗺️ **Localiser** les arrêts de gbaka, bus et taxi à proximité
- 🚏 **Découvrir** les lignes de transport et leurs itinéraires
- 📍 **Calculer** des trajets optimisés selon vos préférences
- 👥 **Collaborer** via des signalements communautaires
- ⭐ **Sauvegarder** vos arrêts favoris
- 📱 **Utiliser** même hors connexion
## 🎯 Fonctionnalités principales
### ✨ Pour les usagers
- **Carte interactive** avec localisation en temps réel
- **Recherche intelligente** d'arrêts et destinations
- **Suggestions de transport** (gbaka, bus, taxi) selon distance/prix/temps
- **Itinéraires détaillés** avec durées estimées
- **Mode hors-ligne** pour les zones téléchargées
- **Historique** et **favoris** personnalisés
### 🤝 Fonctionnalités communautaires
- **Signalements** d'arrêts manquants ou incorrects
- **Évaluations** et commentaires sur les arrêts
- **Mises à jour** collaboratives des informations
- **Photos** et descriptions des arrêts
## 🏗️ Architecture technique
### 📱 Frontend Mobile
```
Flutter (Dart)
├── flutter_map (OpenStreetMap)
├── geolocator (GPS)
├── riverpod (State management)
├── dio (HTTP client)
└── hive (Cache local)
```
### 🔧 Backend API
```
Next.js 14 + TypeScript
├── Prisma ORM
├── PostgreSQL
├── Firebase Auth
├── Overpass API (OpenStreetMap)
└── OSRM (Routing)
```
### ☁️ Services Cloud
```
Firebase
├── Authentication (Email, Google, Phone)
├── Firestore (Signalements, Favoris)
├── Storage (Images)
└── Cloud Messaging (Notifications)
```
## 🎨 Design System
```css
/* Palette de couleurs */
--primary: #0A9396 /* Bleu-vert */
--secondary: #EE9B00 /* Jaune doré */
--accent: #14213D /* Gris foncé */
--background: #FAFAFA /* Blanc cassé */
```
**Style** : Moderne, minimal, typographie sans-ser …