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 Composition Itinéraire Mes billets Bar & Restauration Circulations Divertissements Partenaires FAQ
Dernière version
AAPSL Voyageurs PWA
v5.2.4
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.4 Sécurité
Renforcement du chargement des images
Juillet 2026 · Proxy d'images durci & protections serveur
Sécurité
  • Le proxy d'images de l'app ne sert désormais que de vraies images (type vérifié sur le contenu) — impossible d'y faire passer une page ou un script malveillant
  • Protection contre les redirections détournées et durcissement des en-têtes (anti-interprétation du contenu)
  • Fichiers internes et journaux de l'app rendus inaccessibles publiquement
v5.2.3 Correctif
Notifications & affichage
Juin 2026 · Filtrage des notifications, polices, service worker
Notifications
  • La liste des notifications n'affiche plus que les annonces destinées aux voyageurs — les notifications internes (carnet de bord bénévoles) n'apparaissent plus ici
Affichage & performance
  • Correction des icônes et polices qui pouvaient ne pas se charger (erreurs 503) : le service worker ne bloque plus les ressources externes
  • Mise à jour du cache de l'application pour appliquer automatiquement les correctifs
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