Journal des modifications
Historique des mises à jour de l'application
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
allowfullscreencorrectement défini viasetAttribute()
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:0sur 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.onchangemet à 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êteflex-shrink-0et contenuflex-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=newsletteravec formulaire d'inscription (nom + email) - Table SQL
newsletter_subscribersavec 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=donationavec 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_URLdans .env) - Section Virement bancaire avec IBAN / BIC affichés et bouton « Copier » (configurables via
BANK_IBANetBANK_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/Lonmise à 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_operationen 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
$desktopExcludeKeysen PHP +array_filteravecARRAY_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_VERSIONajoutée dansconfig.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:0etoverflow: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