Application PWA (Progressive Web App) pour le suivi en temps réel de la disponibilité du carburant à Bamako, Mali.
# ⛽ Bamako Gaz Tracker
Application PWA (Progressive Web App) pour le suivi en temps réel de la disponibilité du carburant à Bamako, Mali.
## 🎯 Concept
Une carte interactive de Bamako où chaque station est un point coloré :
- 🟢 **Vert** : Carburant disponible
- 🟡 **Jaune** : Un seul type disponible (Essence ou Gazole)
- 🔴 **Rouge** : Rupture totale
- ⚪ **Gris** : Statut inconnu
## ✨ Fonctionnalités
### 1. **Géolocalisation**
- Trouve automatiquement les stations autour de vous
- Affiche la distance en kilomètres
- Centre la carte sur votre position
### 2. **Signalement Rapide**
- Bouton "✅ Il y a du fuel" - Signale la disponibilité
- Bouton "❌ C'est fini" - Signale une rupture
- Validation par IP (1 signalement/heure par station)
### 3. **Système de Confiance**
- "Vérifié par X personnes"
- Plus il y a d'approbations, plus le signal est fiable
- Algorithme de fraîcheur : les signalements expirent après 4h
### 4. **Mode PWA**
- Installation sur l'écran d'accueil (iOS/Android)
- Fonctionnement hors-ligne partiel
- Service Worker pour la mise en cache des tuiles de carte
### 5. **Design "Cyber-BKO"**
- Mode sombre par défaut (#0A0E14)
- Accents néon (Vert #00FF41, Rouge #FF3131)
- Interface "pouce-friendly" (boutons en bas)
- Animations pulse pour les mises à jour fraîches
## 🏗️ Architecture
### Backend (Django REST Framework)
```
backend/
├── config/ # Configuration Django
├── stations/ # App principale
│ ├── models.py # Station, Signalement
│ ├── views.py # API endpoints
│ ├── serializers.py
│ └── urls.py
├── manage.py
└── requirements.txt
```
**Modèles :**
- `Station` : Nom, Enseigne, Coordonnées GPS
- `Signalement` : Type (Essence/Gazole), Statut, Timestamp, Approbations, IP
**Endpoints API :**
- `GET /api/stations/` - Liste des stations
- `GET /api/stations/?lat=X&lon=Y&radius=Z` - Stations proches
- `POST /api/signalements/` - Créer un signalement
- `GET /api/signalements/latest/` - Derniers signalements (Live Pulse) …