Merci de vous présenter 20 minutes avant le départ pour un voyage optimal et sans stress.
Activez les notifications pour les alertes en temps réel
Accueil Bar & Restauration Circulations Divertissements Partenaires FAQ
Dernière version
AAPSL Voyageurs PWA
v5.2.2
Feuille de route À venir
Futures améliorations
Idées et fonctionnalités envisagées pour les prochaines versions
Carte GPS
  • Mode suivi automatique — la carte recentre automatiquement sur le train lors de chaque mise à jour GPS
  • Historique de trajet — tracer le chemin effectivement parcouru sur la carte (polyline dynamique)
  • Prédiction d'arrivée — estimer l'heure d'arrivée à chaque gare restante basée sur la vitesse actuelle
  • Cache hors ligne — mise en cache des tuiles Leaflet pour utilisation sans connexion internet
  • Flèche de direction — afficher la direction de déplacement du train sur le marqueur (cap GPS)
Notifications & Alertes
  • Alertes gares programmées — recevoir une notification push à l'approche de chaque arrêt du trajet
  • Alertes retard — notification si l'API SNCF détecte un retard sur la liaison en cours
  • Rappel correspondance — alerte configurable avant une correspondance clé
Statistiques & Export
  • Tableau de bord — vitesse moyenne, distance parcourue, temps cumulé à quai par voyage
  • Export PDF / iCal — télécharger son itinéraire au format lisible ou l'ajouter à son agenda
  • QR code de partage — partager rapidement la page du trajet en cours avec d'autres voyageurs
Divertissements & Accessibilité
  • Intégration Spotify / Deezer — playlists suggérées pour le voyage (lecture externe)
  • Mode accessibilité — police agrandie, contraste renforcé, espacement augmenté
  • Support multi-appareils GPS — afficher et distinguer plusieurs agents GPS simultanément avec couleurs dédiées
  • Mode offline complet — Service Worker avancé pour une expérience hors ligne sur l'ensemble des pages statiques
v5.2.2 Correctif
GPS amélioré, Divertissement, Paramètres
Mars 2026 · Carte GPS, Marqueur train, YouTube, Modale, Endpoint
GPS — Chargement automatique sur la zone du trajet
  • Les lignes ferroviaires sont désormais chargées automatiquement au démarrage sur l'ensemble du ROUTE_BBOX — plus besoin de cliquer le bouton manuellement
  • Les gares sont également chargées sur la bbox complète du trajet (et non plus seulement la zone visible) — plus de gares manquantes lors du défilement
  • Le rechargement dynamique des gares au déplacement (moveend) est désactivé quand les données couvrent déjà la zone complète
GPS — Détection de position entre gares
  • Nouveau bandeau "Entre [gare A] → [gare B]" affiché sous la carte quand le train est en route entre deux arrêts du trajet
  • Utilise la projection sur les segments successifs du trajet pour trouver le bon tronçon — robuste même avec des itinéraires sinueux
  • Le bandeau est masqué automatiquement quand l'existant "En gare de" ou "Approche de" prend le relai
GPS — Nouveau marqueur train & carte plein écran
  • Marqueur train redessiné : cercle blanc bordé de couleur, icône train centrée, vitesse affichée en badge sous le marqueur, animation de "ping" en mouvement
  • Marqueur "En attente" affiché au milieu du trajet avant tout signal GPS — plus d'écran vide au chargement
  • Bouton "Plein écran" — ouvre la carte en overlay fullscreen (comme les vues 360°), avec synchronisation du centre/zoom et des marqueurs GPS
  • Bouton "Ouvrir Maps" supprimé (peu utilisé et limité aux mobiles)
Divertissement — Lecteur YouTube corrigé
  • Ajout des attributs allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" requis par les navigateurs modernes
  • Passage à youtube-nocookie.com pour une meilleure compatibilité CSP et le respect de la vie privée
  • Attribut allowfullscreen correctement défini via setAttribute()
Paramètres — Endpoint & modale appareil
  • L'endpoint push est masqué par défaut (affichage domaine/•••) — un bouton œil permet de révéler ou masquer l'URL complète
  • Modale "Informations appareil" : ajout de min-height:0 sur le bloc défilable — corrige le débordement sur desktop et mobile (bug flex hauteur)
v5.2.1 Correctif
Améliorations Paramètres & navigation mobile
Mars 2026 · UX, Géolocalisation, Capteurs, Modale, Menu Plus
Navigation mobile — Menu Plus
  • Paramètres re-ajouté tout en bas du menu "Plus" (drawer) sur mobile — accessibilité préservée sans encombrer la barre principale
  • Changelog retiré du menu "Plus" mobile — accessible depuis la page Paramètres → Liens utiles
Paramètres — Refonte visuelle Notifications & Confidentialité
  • Section Notifications : nouveau design carte avec badge de statut coloré, bouton d'action centré, et bloc endpoint conditionnel — style homogène avec les sections Thème et Langue
  • Section Confidentialité : chaque permission (géolocalisation, Bluetooth, capteurs) est désormais une carte individuelle avec icône colorée, badge de statut, boutons d'action et description — meilleure lisibilité
  • Endpoint push déplacé dans la section Notifications (au lieu des Informations appareil)
Paramètres — Géolocalisation intelligente
  • Le bouton "Autoriser" est automatiquement masqué quand la permission géolocalisation est déjà accordée — évite la confusion
  • Le bouton est désactivé et grisé quand la permission a été refusée (impossible de re-demander sans passer par les réglages du navigateur)
  • Réactivité dynamique : un listener p.onchange met à jour l'affichage si l'utilisateur change la permission depuis les réglages du navigateur
Paramètres — Capteurs de mouvement persistants
  • L'activation des capteurs de mouvement est mémorisée en localStorage (sensors_active = '1')
  • Les capteurs sont automatiquement ré-activés au chargement de la page si l'utilisateur les avait activés précédemment
  • Le bouton d'activation passe en état désactivé (grisé) une fois les capteurs actifs
Paramètres — Modale Informations appareil
  • Fix débordement : la poignée et l'en-tête (avec les boutons Rafraîchir et Fermer) sont désormais fixes en haut de la modale
  • Seul le contenu des informations défile — le bouton de fermeture reste toujours visible même quand la liste est longue
  • Restructuration en flex flex-col max-h-[90vh] avec en-tête flex-shrink-0 et contenu flex-1 overflow-y-auto
v5.2.0
Nouvelles fonctionnalités & refontes majeures
Mars 2026 · i18n, Billets, Don, Paramètres, Nav, Grille, Mobile
Configuration centralisée (.env)
  • Toutes les variables sensibles (nom de l'app, logo, email, URLs) désormais définies une seule fois dans le fichier .env
  • Nouvelles constantes : APP_SHORT_NAME, APP_SUBTITLE, APP_LOGO_URL, CONTACT_EMAIL, SERVICES_EMAIL, BILLETTERIE_URL, SITE_URL, WHATSAPP_URL, GOOGLE_REVIEW_URL, STRIPE_LINK, SUMUP_LINK, TCHOO_URL
  • Header et footer mis à jour pour utiliser les constantes (logo, nom, liens)
  • Facilite la revente/déploiement du code sur un autre domaine
Internationalisation — 5 langues
  • Sélecteur de langue en haut à droite du header (drapeau + menu déroulant)
  • Fichiers de traduction créés : FR / EN / ES / SR / NL
  • Langue mémorisée en session, changement sans rechargement complet
  • Helper __lang('clé') disponible dans toutes les pages
Nouvelle page : Newsletter
  • Page /?page=newsletter avec formulaire d'inscription (nom + email)
  • Table SQL newsletter_subscribers avec gestion des doublons et réactivation
  • Confirmation visuelle après inscription, conformité RGPD mentionnée
  • Raccourcis ajoutés sur la page d'accueil (section Liens utiles)
Nouvelle page : Don
  • Page /?page=donation avec deux options de paiement : Stripe et SumUp
  • URLs configurables via .env (STRIPE_LINK, SUMUP_LINK)
  • Message de présentation de l'association et note fiscale
Page Mes billets — Refonte complète
  • 3 onglets : Tous · Billets transport · Restauration — avec compteur par onglet
  • Sous-filtres par type dans chaque onglet : Train / Bus / Premium / VIP / Réduit pour transport ; Petit-déjeuner / Plateau / Sandwich / Hot-dog pour restauration
  • Accordéon par commande : chaque commande se replie/déploie pour une meilleure lisibilité
  • QR Code sur tous les billets (transport ET restauration) avec pill de statut Valide / Utilisé
  • 7 types de billets avec couleurs et icônes distinctes : Standard, Bus (teal), Premium (violet), VIP (ambre), Réduit (indigo), Petit-déjeuner (jaune), Plateau (orange), Sandwich (vert), Hot-dog (rouge)
  • Badge / affiché sur chaque en-tête de commande
Page Don — Nouveaux moyens de paiement
  • Support de HelloAsso (configurable via HELLOASSO_URL dans .env)
  • Section Virement bancaire avec IBAN / BIC affichés et bouton « Copier » (configurables via BANK_IBAN et BANK_BIC)
  • Libellé de virement conseillé affiché avec mise en valeur
Navigation mobile — Menu Plus enrichi
  • Liens Newsletter et Nous soutenir désormais accessibles depuis le menu "Plus" sur mobile
  • Tous les labels de navigation traduits via le système i18n
Correctifs & sécurité
  • CSP fix : ajout de worker-src blob: 'self' dans la politique de sécurité pour autoriser le widget Altcha (newsletter)
  • Protection anti-CSRF vérifiée sur tous les formulaires POST
Page GPS — Améliorations
  • Correspondances SNCF en direct dans les popups de gares (bouton "Voir les prochains trains" → départs + arrivées via API SNCF)
  • Nouveau bouton Carte Tchoo (tchoo.net) — carte ferroviaire interactive en nouvel onglet
  • Nouveau bouton Ouvrir Maps — ouvre la position GPS courante dans Google Maps / Apple Plans (détection iOS/Android)
  • Variable currentGpsLat/Lon mise à jour à chaque update GPS
Page Circulations — Dates & Type opération
  • Dates affichées en toutes lettres : "mardi 07 mars 2025" (IntlDateFormatter + fallback manuel)
  • Nouveau champ type_operation en base de données :
    ■ 1 = Train AAPSL   ■ 2 = Asso partenaire   ■ 3 = Traction seule
  • Badge coloré affiché sur chaque circulation (à venir et historique)
  • Requête SQL : ALTER TABLE trajets ADD COLUMN type_operation TINYINT NOT NULL DEFAULT 1 AFTER id;
Accueil — Bouton avis Google
  • Bouton "⭐ Laisser un avis Google" en bas de la page d'accueil (affiché si GOOGLE_REVIEW_URL est défini dans .env)
  • Liens "Newsletter" et "Nous soutenir" ajoutés dans la section liens utiles
  • Liens hardcodés remplacés par les constantes .env (BILLETTERIE_URL, SITE_URL, WHATSAPP_URL, CONTACT_EMAIL)
Accueil — Traduction complète (i18n)
  • Toutes les chaînes hardcodées remplacées par __lang() : titre de bienvenue, carte voyage actif, grille de services, boutons d'action rapide
  • Informations pratiques (arrivée, billets, restauration, bagages, accessibilité, règlement, CGV) entièrement traduites
  • Section liens utiles traduite (Billetterie, Site AAPSL, Contact, WhatsApp)
  • Statut de connexion (Connecté / Hors ligne) traduit via JS avec injection PHP
  • Bannière d'installation PWA traduite (Installer / Plus tard)
  • Cartes de service (GPS, Composition, Bar, Divertissements, FAQ, Circulations, Partenaires, Paramètres) — titre + description traduits
Navigation — Desktop & Footer
  • Barre de navigation desktop épurée : Notifications, Don, Newsletter et Changelog masqués de la nav desktop (toujours accessibles via le menu mobile)
  • Footer desktop enrichi : Lien Changelog ajouté avec icône fa-code-branch
  • Label GPS raccourci : "GPS & Itinéraire" → "Itinéraire" (trop long sur mobile)
  • Filtrage via $desktopExcludeKeys en PHP + array_filter avec ARRAY_FILTER_USE_KEY
Paramètres — Refonte complète
  • Thème visuel : 3 boutons Sombre / Clair / Auto avec aperçu graphique et mémorisation en localStorage. Compatibilité avec le système existant (darkMode)
  • Sélecteur de langue : grille avec drapeau + nom de langue, langue active mise en évidence avec coche bleue
  • Informations appareil dans une modale : 13 lignes techniques déplacées dans un panneau glissant bas-haut — libère la page principale
  • Endpoint push — bouton info : bouton ℹ️ ouvre une modale expliquant ce qu'est l'endpoint et pourquoi il est transmis au serveur
  • Traduction complète : toute la page utilise __lang() — libellés, statuts, boutons, descriptions
  • Ajout du lien Changelog dans la section Liens utiles des paramètres
  • Affichage de la version de l'application (APP_VERSION) dans les paramètres
  • Nouvelle constante APP_VERSION ajoutée dans config.php
Accueil — Newsletter & Don dans la grille
  • Les cartes Newsletter et Nous soutenir intégrées dans la grille de services (comme Circulations, Partenaires, etc.) — plus logique et accessible
  • Grille dédiée en bas de page supprimée
Navigation — Ordre & icône Paramètres
  • Circulations repositionné entre Bar et Divertissements dans la navigation
  • Paramètres retiré de la barre de navigation et remplacé par une icône molette ⚙️ dans le header, à côté du soleil et de la cloche — accessible en permanence
Mes billets — Fix onglets & filtres mobile
  • Les onglets "Tous / Transport / Restauration" ne débordent plus sur mobile — largeur adaptive avec min-width:0 et overflow:hidden
  • Sur écrans ≤ 400 px : icônes masquées dans les onglets, police réduite pour tenir sur 3 colonnes
  • Chips de sous-filtres avec overflow-x: auto + padding réduit — défilement horizontal fluide sans débordement
v5.1.0 Mineure
Améliorations visuelles & contenu enrichi
Mars 2026
Page d'accueil
  • Nouvelle carte Circulations dans les services rapides
  • Section Informations pratiques enrichie : bagages, accessibilité PMR, règlement à bord
  • Ajout d'un lien vers les CGV
  • Nouvelle section Liens utiles : billetterie, site AAPSL, contact, WhatsApp
  • Lien "Réserver mes billets" pointant désormais vers billetterie.aapsl.fr
Circulations
  • Accordéons de l'historique fermés par défaut pour une meilleure lisibilité
  • Bouton "Réserver mes billets" redirige vers billetterie.aapsl.fr
Composition du train
  • Catégorie "Bus / Transports" exclue du décompte de passagers (comme "Offres restauration")
  • Suppression du bouton Plein écran inutile dans Vue d'ensemble
  • Correction de l'inversion des labels Locomotive ↔ Queue dans la barre de progression
  • Vues 360° déplacées sous Vue d'ensemble — affichage direct sans onglet séparé
  • Réorganisation des onglets : Vue du train → Stats → Composition détaillée → Bénévoles
Suivi GPS & Itinéraire
  • Section Itinéraire détaillé entièrement redessinée avec le système de design unifié
  • Refonte complète de la page GPS : carte pleine largeur (480 px), style cohérent avec le reste de l'app
  • Section Appareils connectés masquée par défaut, affichable via un bouton dédié
  • Suppression de toutes les classes dark: Tailwind au profit des variables CSS de l'app
Bar & Restauration
  • Page entièrement redessinée avec le système de design unifié
  • Nouvelles cartes catégorie colorées avec icônes dynamiques selon le type de produit
  • Badges populaire, sur réservation et végétarien améliorés visuellement
FAQ — Application mobile
  • Section Application mobile entièrement remplie : 9 thèmes, 32 questions/réponses détaillées
  • Toutes les fonctionnalités documentées : installation, billets, GPS, composition, bar, notifications, circulations, paramètres, dépannage
v5.0.0 Majeure
Refonte complète de l'interface
Mars 2026
Design & Interface
  • Nouveau système de design complet avec variables CSS (thème clair / sombre)
  • Navigation mobile redessinée avec barre inférieure fixe (style app native)
  • Drawer "Plus" animé avec swipe-to-close sur mobile
  • Navigation desktop en barre supérieure responsive
  • Mode sombre entièrement corrigé sur toutes les pages
  • Animations d'entrée (fade-in-up, stagger) sur chaque section
Page d'accueil
  • Statut du voyage différencié : Voyage en cours (vert), À venir (bleu), Récent
  • Correction : ne plus afficher "Voyage en cours" pour les voyages futurs
  • Badge "En direct" pulsant uniquement le jour J
Mes billets
  • Interface complètement redessinée avec cartes de billets colorées selon le type (Standard, Premium, VIP, Restauration)
  • Correction erreur JavaScript critique : submitBtn is null
  • Sauvegarde automatique du nom et email dans le stockage local
  • Recherche automatique au chargement si un compte est mémorisé
  • Formulaire masqué automatiquement quand l'utilisateur est connecté
  • QR code agrandi en plein écran sur tap
  • Bouton Apple Wallet et lien de gestion
  • Correction chemin BilletWeb (membres.aapsl.fr)
Composition du train
  • Correction compteur passagers (0/261 → valeur réelle)
  • Modal détail véhicule : z-index corrigé, défilement possible, ne passe plus sous le header
  • Vue 360° Pannellum : z-index corrigé (plus de superposition avec le header)
GPS & Itinéraire
  • Restauration des onglets : Position GPS, Itinéraire, Correspondances SNCF
  • Navigation entre onglets fluide
Notifications push
  • Correction : bandeau masqué automatiquement si les notifications sont déjà activées
  • Bouton ✕ de fermeture fonctionnel
  • Correction CSS (display:flex écrasait le masquage)
Corrections générales
  • Icône navigation "Plus" corrigée (fa-ellipsis)
  • Correction sécurité : trajet_id et gestion CORS améliorée
  • Page Changelog ajoutée (cette page)
Circulations & détection de voyage
  • Détection étendue à 30 jours (était 10 jours) : l'app s'active 1 mois avant le départ
  • Gestion de plusieurs circulations : toujours la plus proche en priorité
  • Page Toutes les circulations : historique par année + programme à venir avec statuts
  • Accueil : affiche les prochaines circulations quand aucun trajet n'est actif (avec lien billetterie)
  • Accueil : message adapté si aucune circulation n'est programmée
Vue d'ensemble de la rame
  • Carrousel panoramique natif (suppression de Swiper.js)
  • Défilement fluide au toucher (mobile) et glisser-déposer (desktop)
  • Barre de progression avec indicateur de position (Locomotive ↔ Queue)
  • Boutons navigation gauche/droite par page
  • Hint visuel disparaissant après le premier scroll
Badge notifications
  • Badge rouge n'affiche plus "0" : masqué par défaut côté CSS, visible uniquement si notifications > 0
  • Correction CSS identique au bandeau push (display:flex écrasait display:none)
v4.0.0 Majeure
Notifications push en temps réel
10 décembre 2025
  • Intégration des notifications push via Service Worker
  • Abonnement VAPID avec le serveur Node.js (node.aapsl.fr)
  • Bandeau d'activation des notifications dans l'interface
  • Alertes en temps réel pour les retards, annulations et informations voyageurs
  • Centre de notifications dédié
  • Page de paramètres notifications
v3.0.0 Majeure
Tracking GPS — Version 4
19 mai 2025
  • Quatrième génération du module de suivi GPS en temps réel
  • Intégration des correspondances SNCF
  • Affichage de l'itinéraire détaillé gare par gare
  • Carte interactive avec position du train en direct
  • Calcul dynamique des retards et de l'heure d'arrivée estimée
  • Interface onglets : Position GPS / Itinéraire / Correspondances
v2.0.0 Majeure
Tracking GPS — Version 3
3 octobre 2024
  • Troisième génération du module de suivi GPS
  • Performances améliorées et réduction de la consommation batterie
  • Meilleure précision de localisation du train
  • Refonte de la page Itinéraire & Suivi GPS
  • Ajout de nouvelles pages : Bar / Restauration, Divertissements, Partenaires
v1.0.0 Majeure
Tracking GPS — Version 2
28 mai 2024
  • Deuxième génération du module GPS intégré à l'application
  • Introduction du suivi de position du train en temps réel
  • Affichage de la vitesse et des prochains arrêts
  • Intégration BilletWeb pour la gestion des billets
  • Page de composition du train (liste des voitures)
  • PWA installable sur mobile (icône sur l'écran d'accueil)
v0.1.0 Initiale
Première version de l'application
Décembre 2023
  • Lancement de l'application AAPSL Voyageurs
  • Page d'accueil avec informations du voyage en cours
  • Première version du tracking GPS
  • Page FAQ et informations générales
  • Intégration du système d'authentification membres
  • Application web progressive (PWA) pour mobile