- JavaScript 49.6%
- CSS 25.5%
- Python 19%
- HTML 5.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| static | ||
| templates | ||
| tests | ||
| .gitignore | ||
| app.py | ||
| config.example.ini | ||
| debug.log | ||
| pdf_export.py | ||
| README.md | ||
| requirements.txt | ||
Transporc en commun
Transporc est une application web responsive pour préparer un trajet, consulter les prochains passages d’un arrêt et explorer une ligne de transport.
Elle s’appuie sur l’API libre Transitous et sur les cartes OpenStreetMap. Une connexion Internet reste nécessaire pour rechercher les horaires, afficher les cartes et obtenir les prévisions météo.
Fonctionnalités principales
- calcul d’itinéraires avec une heure de départ ou d’arrivée ;
- prochains passages, temps réel et perturbations lorsqu’ils sont disponibles ;
- filtrage des passages par ligne et direction ;
- plan d’une ligne, liste de ses arrêts et table horaire journalière ;
- préférences de marche, de correspondances, de modes de transport et d’accessibilité ;
- partage d’un itinéraire, d’un arrêt filtré ou d’un plan de ligne ;
- export d’un trajet au format iCalendar ;
- export PDF optionnel des trajets et fiches horaires ;
- installation dans le navigateur comme application web (PWA).
Installation rapide
Prérequis
- Python 3.10 ou plus récent ;
- une connexion Internet ;
- Git, uniquement si vous souhaitez cloner le dépôt.
Vous pouvez récupérer le projet avec Git :
git clone https://sc.gogolenetwork.com/michellabrie404/Transporc.git
cd Transporc
Si vous avez téléchargé une archive ZIP, décompressez-la puis ouvrez un terminal dans le dossier obtenu.
Windows — PowerShell
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python app.py
Si la commande py n’existe pas, utilisez python à la place.
Si PowerShell bloque l’activation de l’environnement virtuel, vous pouvez lancer directement les commandes suivantes :
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe app.py
macOS ou Linux
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python app.py
Une fois le serveur démarré, ouvrez :
Pour arrêter le serveur, revenez dans le terminal et appuyez sur Ctrl+C.
Configuration
Au premier lancement, si config.ini n’existe pas et que TRANSITOUS_CONTACT n’est pas défini, Transporc demande une adresse e-mail dans le terminal :
[Transporc] Première configuration
Transitous exige une adresse e-mail de contact dans le User-Agent des applications clientes.
Adresse e-mail de contact Transitous : nom@example.com
[Transporc] Configuration créée : .../config.ini
L’adresse est obligatoire : elle permet à Transitous d’identifier et de contacter les applications qui utilisent son service. Après validation, Transporc crée automatiquement config.ini. Ce fichier reste local et est ignoré par Git.
Pour préparer le fichier manuellement, copiez config.example.ini vers config.ini, puis adaptez son contenu :
[transitous]
TRANSITOUS_CONTACT = votre-email@example.com
TRANSITOUS_API_URL = https://api.transitous.org/api
[weather]
API_URL = https://api.open-meteo.com/v1/forecast
[server]
HOST = 127.0.0.1
PORT = 5000
DEBUG = false
En cas d'absence de fichier de configuration, le mail sera demandé au lancement de l'application dans le terminal.
TRANSITOUS_CONTACT doit contenir une adresse e-mail ou l’URL de votre projet. Cette information est ajoutée au User-Agent envoyé à Transitous afin d’identifier correctement l’application cliente.
Les variables d’environnement ont priorité sur config.ini :
| Variable | Utilité |
|---|---|
TRANSITOUS_API_URL |
Utiliser une autre instance Transitous/MOTIS |
TRANSITOUS_CONTACT |
Définir le contact du User-Agent |
WEATHER_API_URL |
Utiliser une autre API météo compatible |
FLASK_HOST |
Modifier l’adresse d’écoute du serveur |
FLASK_PORT |
Modifier le port, par défaut 5000 |
FLASK_DEBUG=1 |
Activer le mode de développement |
TRANSPORC_CONFIG |
Charger un autre fichier INI |
Exemple sous PowerShell :
$env:FLASK_DEBUG = "1"
python app.py
Exemple sous macOS ou Linux :
FLASK_DEBUG=1 python app.py
Activer les exports PDF
L’export PDF est facultatif et nécessite ReportLab. Dans l’environnement virtuel activé :
python -m pip install reportlab
Redémarrez ensuite l’application. Sans ReportLab, Transporc continue de fonctionner normalement, mais les boutons d’export PDF ne sont pas affichés.
Lancer l’application plus tard
Depuis le dossier du projet :
Windows
.\.venv\Scripts\Activate.ps1
python app.py
macOS ou Linux
source .venv/bin/activate
python app.py
Il n’est pas nécessaire de réinstaller les dépendances à chaque lancement.
Accès depuis un autre appareil du réseau local
Pour tester Transporc depuis un téléphone ou une autre machine du même réseau, modifiez temporairement la configuration :
[server]
HOST = 0.0.0.0
PORT = 5000
DEBUG = false
Ouvrez ensuite http://ADRESSE_IP_DU_PC:5000 depuis l’autre appareil. Le pare-feu du système peut demander une autorisation.
N’exposez pas directement le serveur de développement Flask sur Internet. Pour un déploiement public, utilisez un serveur adapté à la production, un proxy inverse et HTTPS.
Installation comme application
Sur un navigateur compatible, le bouton « Installer l’application » permet d’ajouter Transporc à l’écran d’accueil.
- sur
localhost, l’installation PWA fonctionne pendant le développement ; - sur un serveur distant, HTTPS est requis ;
- l’interface peut rester disponible hors connexion, mais les horaires, itinéraires, cartes et prévisions nécessitent toujours le réseau.
Tests
Dans l’environnement virtuel :
python -m unittest discover -s tests -v
Problèmes courants
python, python3 ou py est introuvable
Installez Python 3.10 ou plus récent, puis fermez et rouvrez le terminal. Sous Windows, vérifiez que l’option d’ajout de Python au PATH est activée pendant l’installation.
Le port 5000 est déjà utilisé
Changez PORT dans config.ini, par exemple :
[server]
PORT = 5050
L’application sera alors disponible sur http://127.0.0.1:5050.
Le bouton PDF n’apparaît pas
Installez ReportLab dans le même environnement Python que celui utilisé pour démarrer l’application, puis redémarrez le serveur.
Les horaires ou les cartes ne se chargent pas
Vérifiez la connexion Internet, la valeur de TRANSITOUS_API_URL et les messages affichés dans le terminal. Transitous étant un service communautaire, une indisponibilité temporaire peut également survenir.
Données et attributions
Transitous est un service communautaire fourni au mieux de ses possibilités. Pour un usage important ou soutenu, contactez le projet Transitous ou envisagez une instance MOTIS auto-hébergée.
Les attributions Transitous, ses sources de données et OpenStreetMap sont affichées dans le pied de page de l’application.