Application web moderne pour afficher en temps réel les prochains passages de métro en Île-de-France, avec un design inspiré des écrans RATP (SIEL).
- Design RATP : Interface sombre, couleurs officielles des lignes, et affichage type LED.
- Favoris (⭐) : Sauvegardez vos stations préférées pour un accès rapide.
- Historique (🕒) : Retrouvez vos dernières recherches en un clic.
- Filtres de Ligne (⚡) : Pour les stations complexes (ex: Châtelet), validez uniquement les lignes qui vous intéressent.
- PWA / Mobile (📱) :
- Installable sur smartphone ("Ajouter à l'écran d'accueil").
- Fonctionne en plein écran comme une application native.
- Temps réel : Mise à jour automatique toutes les 30 secondes.
- Python 3.11+
- Clé API PRIM (Île-de-France Mobilités)
- Docker (optionnel)
- Créez un compte sur https://prim.iledefrance-mobilites.fr/
- Connectez-vous et accédez à "Mon Compte" > "Mes Applications"
- Créez une nouvelle application et notez votre clé API
- Abonnez-vous à l'API "Prochains passages (plateforme Île-de-France Mobilités)"
Créez un fichier .env à la racine (ou dans src/) contenant :
PRIM_API_KEY=votre_cle_api_iciPuis lancez :
# Installer les dépendances
pip install -r requirements.txt
# Lancer l'application
python src/app.pyL'application sera accessible sur http://localhost:8080.
# Construire l'image
docker build -t metro-app .
# Lancer le conteneur (Notez le port 8080:8080)
docker run -p 8080:8080 -e PRIM_API_KEY="votre_cle_api_ici" metro-appAccédez ensuite à http://0.0.0.0:8080.
.
├── Dockerfile # Configuration Docker
├── LICENSE # Licence du projet
├── README.md # Ce fichier
├── data/
│ ├── get_metro_stops.py # Script de mise à jour des arrêts
│ └── metro_stops.csv # Base de données des arrêts
├── requirements.txt # Dépendances Python
└── src/
├── app.py # Backend Flask
├── static/
│ ├── style.css # Styles (Thème Dark/RATP)
│ ├── manifest.json # Configuration PWA
│ └── sw.js # Service Worker (Cache/Offline)
└── templates/
└── index.html # Frontend (JS, LocalStorage)
PRIM_API_KEY: Votre clé API (obligatoire)- Port par défaut :
8080(Configurable viaapp.runou gunicorn)
- Frontend : Vanilla JS, CSS pur, LocalStorage pour la persistance (Favoris/Historique).
- Backend : Flask + Requests. Récupération optimisée des données API (Groupement par Ligne/Direction).
- Données : API PRIM format SIRI Lite + Mapping manuel pour certaines lignes (ex: Ligne 11).
Données fournies par Île-de-France Mobilités.