Skip to content

Application web Flask pour afficher en temps réel les prochains passages de métro en Île-de-France, avec un design inspiré des écrans RATP (SIEL).

License

Notifications You must be signed in to change notification settings

timothja/NextMetro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚇 NextMetro - Horaires Métro Île-de-France

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).

✨ Fonctionnalités

  • 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.

📋 Prérequis

  • Python 3.11+
  • Clé API PRIM (Île-de-France Mobilités)
  • Docker (optionnel)

🔑 Obtenir une clé API PRIM

  1. Créez un compte sur https://prim.iledefrance-mobilites.fr/
  2. Connectez-vous et accédez à "Mon Compte" > "Mes Applications"
  3. Créez une nouvelle application et notez votre clé API
  4. Abonnez-vous à l'API "Prochains passages (plateforme Île-de-France Mobilités)"

🚀 Installation et lancement

Méthode 1 : Lancement direct avec Python

Créez un fichier .env à la racine (ou dans src/) contenant :

PRIM_API_KEY=votre_cle_api_ici

Puis lancez :

# Installer les dépendances
pip install -r requirements.txt

# Lancer l'application
python src/app.py

L'application sera accessible sur http://localhost:8080.

Méthode 2 : Avec Docker 🐳

# 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-app

Accédez ensuite à http://0.0.0.0:8080.

📁 Structure du projet

.
├── 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)

🔧 Configuration

  • PRIM_API_KEY : Votre clé API (obligatoire)
  • Port par défaut : 8080 (Configurable via app.run ou gunicorn)

📝 Notes techniques

  • 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.

About

Application web Flask pour afficher en temps réel les prochains passages de métro en Île-de-France, avec un design inspiré des écrans RATP (SIEL).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors