Tous les jours, je prends le train pour rejoindre mon école d'ingénieur. Régulièrement, mon train a du retard, sans que je le sache à l'avance : aucun moyen de le savoir autrement qu'en vérifiant l'appli SNCF à la main, ou en arrivant sur le quai. Pas de notification, rien.
C'est ce qui m'a donné l'idée de Traincker : une appli qui surveille mes trajets favoris en continu et m'alerte automatiquement (Discord, email) dès qu'une perturbation apparaît.
Au fil du développement, le projet s'est étoffé :
- recherche de gare avec départs en temps réel
- gestion de plusieurs trajets favoris, avec surveillance automatique en arrière-plan
- alertes Discord/email configurables (heures de silence, canaux)
- historique des trajets et statistiques de ponctualité (retard moyen, taux de ponctualité, tendance)
- visualisations (retard par ligne, par gare, évolution dans le temps)
- accessibilité (contraste élevé, taille de texte, thème clair)
- interface rapide en FastAPI + HTMX, sans rechargement de page
Ce projet me sert avant tout à progresser en Python (data, API, web), mais surtout, je m'en sers vraiment, tous les jours, pour aller en cours.
Stack : Python, FastAPI, HTMX, pandas/numpy, matplotlib, API SNCF (Navitia), Supabase.
Architecture :
api_client.py: client HTTP vers l'API SNCF, avec timeout et gestion d'erreursmonitor.py: surveillance périodique, alertes Discord/email, heures de silenceanalysis.py/viz.py: statistiques de ponctualité et visualisationstraincker_web/: interface FastAPI + HTMX (recherche, favoris, statistiques)db.py: persistance partagée Supabase entre la surveillance et le site hébergé
Points notables : mode dégradé en cas de panne API, suite de tests automatisés (pytest), déploiement continu (GitHub Actions + Render).
Exporte tes trajets favoris dans un fichier, ou restaure une sauvegarde précédente.
Réglages d'alerte non disponibles sur cette démo publique (informations personnelles du propriétaire du projet).
Ces réglages ne concernent que ton propre navigateur (via un cookie) : ils ne changent rien pour les autres visiteurs.
Aucune recherche enregistrée pour l'instant.
Aucun log pour l'instant.