Changelog
Historique des versions de F2Arena. Version actuelle : v0.13
v0.13
2026-03-22Version actuelleSécurité — Durcissement avant production
- —Routes de test (/api/.../test/*) désactivées en production (retournent 404)
- —Middleware NextAuth ajouté comme filet de sécurité sur /admin/* et /pilot/*
- —Rate limiting ajouté sur /api/geocode (30 req/min par IP) avec validation de longueur
- —Content-Security-Policy ajouté sur toutes les routes
- —Strict-Transport-Security (HSTS 2 ans) activé en production
- —Avertissement RGPD affiché avant l'export des inscrits (données personnelles)
- —.env.example mis à jour avec les instructions de génération des secrets
v0.12
2026-03-22Internationalisation (i18n) — Espace pilote & pages admin
- —Dashboard pilote traduit en 6 langues (salutation, statuts, sections inscriptions/compétitions)
- —Page Réglages pilote traduite en 6 langues (onglets, formulaires, messages de succès/erreur)
- —Liste des compétitions admin traduite en 6 langues
- —Fiche compétition admin traduite en 6 langues (informations, actions, phases, équipes, pilotes)
- —Liste des pilotes admin traduite en 6 langues
- —Formatage des dates locale-aware sur le dashboard pilote et les pages admin
v0.11
2026-03-22Internationalisation (i18n) — Pages publiques
- —Toutes les pages publiques traduites : accueil, connexion, inscription, mot de passe oublié, réinitialisation, vérification email, inscriptions, résultats passés
- —Page de vérification d'email et réinitialisation du mot de passe restyléées (charte F2Arena)
- —Liens obsolètes /admin/login et /pilot/login remplacés par /login
v0.10
2026-03-22Internationalisation (i18n) — Infrastructure
- —Support de 6 langues : Français, Anglais, Allemand, Néerlandais, Italien, Espagnol
- —Sélecteur de langue dans le header public et la navigation admin
- —Préférence de langue sauvegardée (cookie persistant 1 an)
- —Champ preferredLocale sur le profil utilisateur
- —Navigation publique et admin entièrement traduites
Interface admin
- —Panneau Actions remonté en haut de la page compétition (statut, inscriptions, tirage, gestion par catégorie, exports)
- —Liste des pilotes séparée des actions pour plus de clarté
Logique junior par catégorie
- —Seuil junior basé sur isWorldCup par catégorie (≤21 ans FAI, ≤18 ans nationale)
- —Suppression du toggle Nationale/FAI au niveau de la compétition
v0.9
2026-03-21Classements juniors
- —Classement junior automatique pour chaque catégorie, basé sur l'ordre du classement général
- —Critère junior configurable par compétition : ≤ 21 ans pour les épreuves FAI/internationales, ≤ 18 ans pour les compétitions nationales
- —Pour les catégories par équipe (F2C / F2F) : les deux membres doivent être juniors pour que l'équipe soit classée junior
- —Page résultats admin : badge «Jn» cyan à côté de chaque compétiteur junior dans le classement général, tableau «Classement Juniors» affiché en dessous de chaque classement de catégorie
- —Page live spectateurs : mention «Jn» en cyan à côté du nom des pilotes/équipes juniors (sans classement séparé)
- —Formulaires création et édition de compétition : choix du type (Internationale FAI / Nationale)
v0.8
2026-03-21Liste d'attente par catégorie
- —Limite de compétiteurs configurable par catégorie (nombre de pilotes pour les catégories solos, nombre d'équipes complètes pour F2C / F2F)
- —Au-delà de la limite, les inscriptions sont automatiquement placées en liste d'attente
- —Désinscription d'un pilote confirmé : le premier en liste d'attente est promu automatiquement (par ancienneté d'inscription ; pour les équipes, la première paire complète est promue)
- —Page inscriptions publique : séparateur visuel «Limite atteinte» entre inscrits confirmés et liste d'attente, numérotation A1/A2… pour les dossards en attente
- —Dashboard pilote : badge ambre ⏳ pour les catégories en attente, message d'information
- —Fiche compétition : badge du nombre de places restantes / nombre en attente par catégorie
Corrections
- —Profil pilote : les comptes CLUB pouvaient être bloqués avec «Non autorisé» en tentant de modifier leur profil — corrigé
- —Inscription : le pays et la licence FAI ne s'affichaient pas dans le formulaire pour les comptes CLUB — corrigé (lecture depuis la base au lieu du JWT)
- —Formulaire de création de compétition : erreur Safari «The string did not match the expected pattern» provoquée par min="" sur un champ date — corrigé
Interface
- —Page d'accueil : suppression des sections «Une plateforme, deux espaces» et «Tout ce qu'il faut pour gérer une compétition» — les événements à venir apparaissent directement sous le hero
- —Logo remplacé par l'icône F2Arena sur toutes les pages (navigation, login, register, accueil)
- —Bannière remplacée par un bloc texte HTML reprenant la typographie de la bannière originale
v0.7
2026-03-18Fusion des espaces pilote et organisateur
- —Un seul compte pour tout : pilotes, clubs et admins utilisent désormais la même page de connexion (/login)
- —Sessions 30 jours (au lieu de 8 heures) — plus besoin de se reconnecter chaque jour
- —Les pilotes peuvent compléter leur profil (prénom, nom, nationalité, date de naissance, licences) sans créer un second compte
- —Redirection automatique après connexion : espace pilote pour les USER, espace admin pour ADMIN/CLUB
- —Avertissement sur le dashboard si le profil pilote est incomplet (inscription aux compétitions bloquée tant qu'il est incomplet)
- —Vérification du profil complet avant toute inscription à une compétition
Refactoring technique
- —Migration complète Pilot → User : toutes les données pilotes sont désormais dans la table User
- —Suppression du provider NextAuth pilote séparé — un seul provider unifié
- —Routes API auth (verify-email, reset-password, forgot-password, resend-verification) simplifiées
v0.6
2026-03-18Refonte graphique
- —Charte graphique F2Arena appliquée sur l'ensemble du site : couleur brand #0088cc (bleu FAI), typographie Helvetica Neue, font-weight 800/400 uniquement
- —Suppression de tous les dégradés et ombres — style minimaliste géométrique
- —Page d'accueil : hero fond uni #111111, badges disciplines avec letter-spacing 2px, section CTA fond #0088cc uni
- —Navigation admin et pilote : bordures #dddddd, items actifs en brand/10, sans ombre
- —Cards : bordure #dddddd, border-radius 12px, fond blanc
- —Boutons : primaire #0088cc plein, secondaire bordure #0088cc
v0.5
2026-03-17Nouvelles fonctionnalités
- —Bouton «Clôturer les inscriptions» ajouté directement sur la page de gestion de la compétition (en plus de la page compétiteurs)
- —Les boutons «Tirage au sort» et «Gérer la compétition» sont désactivés tant que les inscriptions ne sont pas clôturées
- —Ajout d'un compétiteur en cours de compétition (F2A / F2G / F2B) : le pilote est automatiquement inséré à la fin du tirage pour tous les tours restants
- —Drapeau pays affiché à côté de chaque compétiteur sur toutes les pages de résultats et la page live (F2C / F2F : drapeau individuel par membre d'équipe)
- —F2B : noms des juges configurables depuis la page de gestion — affichés en bas des classements imprimés et sur la page d'analyse des juges
v0.4
2026-03-16Améliorations
- —Page live : mise à jour instantanée dès qu'un résultat est enregistré (Server-Sent Events), pour toutes les catégories (F2A, F2B, F2C, F2D, F2E, F2F, F2G)
- —Page live : le polling toutes les 10 secondes reste actif en secours si la connexion SSE est interrompue
Corrections
- —Page live : les résultats ne se rafraîchissaient pas à cause d'un cache navigateur sur l'API — corrigé avec cache: no-store
- —Build de production : correction de plusieurs erreurs ESLint (variables non utilisées, Suspense manquant autour de useSearchParams)
v0.3
2026-03-15Nouvelles fonctionnalités
- —Gestion des compétiteurs : page centralisée pour ajouter et supprimer des inscriptions (accessible depuis la fiche compétition)
- —Fin des inscriptions : bouton permettant à l'organisateur de fermer les inscriptions en ligne tout en conservant la possibilité d'ajouter des participants manuellement
- —Tarifs : définition d'un prix par catégorie et d'un tarif réduit à partir de la 2ème catégorie
- —Banquet : configuration dans la fiche compétition (inclus ou en option payante, prix accompagnateurs), choix du compétiteur à l'inscription, récapitulatif dans la gestion des compétiteurs
Améliorations
- —Bouton «S'inscrire» grisé avec mention «Inscriptions closes» quand les inscriptions sont fermées (au lieu d'un message d'erreur après soumission)
- —Page live F2C : affichage de toutes les phases de la compétition (Q1, Q2… S1, S2, Finale) au lieu des 2 derniers rounds uniquement
- —Page live F2C : affichage des DSQ en rouge
v0.2
2026-03-15Nouvelles fonctionnalités
- —Page Programme F2C / F2F : gestion des tirages au sort séparée de la gestion de compétition, avec impression par round et par phase
- —Page Programme F2D / F2E : génération des rounds 1+2 initiaux puis de chaque round suivant, avec impression
- —Page Programme centralisée : vue unique sur tous les tirages de toutes les catégories d'une compétition, avec génération et impression par catégorie
- —Page Résultats centralisée : vue unique sur tous les classements de toutes les catégories, avec impression par catégorie
Améliorations
- —Page live : rafraîchissement automatique toutes les 10 secondes sans interrompre le défilement
- —Page live : indicateur visuel (point jaune) pendant le chargement des données
- —Saisie des notes F2B : les caractères non-numériques (hors . et ,) sont ignorés automatiquement, la virgule est normalisée en point
Corrections F2B
- —Les notes invalides (hors 0–10 ou non-multiples de 0,1) sont signalées en rouge et bloquent l'enregistrement
- —Le bouton «Enregistrer et retour» sauvegarde correctement les notes avant de naviguer
Corrections F2C
- —La validation d'une course met désormais à jour la page des résultats immédiatement (revalidation du cache serveur)
Corrections F2A / F2G
- —Les champs temps et vitesse sont désormais vides lors du passage à une nouvelle manche (ils affichaient les valeurs de la manche précédente)
Corrections F2C
- —Le tirage ne crée plus de course incomplète visible — les équipes en surplus rejoignent le pool refly
- —Système de leftovers : les équipes sans course sont détectées automatiquement et intégrées au prochain tirage refly
- —Les équipes éliminées en demi-finales ne sont plus affichées comme «en attente»
- —Le tirage refly fonctionne désormais même sans volontaires disponibles (course à 1 ou 2 équipes en dernier recours)
v0.1
2026-03-15Nouvelles fonctionnalités
- —Support des disciplines F2B, F2C, F2D et F2F
- —Tableau de bord administrateur avec vue d'ensemble des compétitions
- —Portail pilote : inscription aux compétitions, gestion du profil
- —Affichage live des résultats en temps réel (accessible sans connexion)
- —Vérification d'email à l'inscription et réinitialisation de mot de passe
- —Gestion des comptes organisateurs avec niveaux de droits (admin / club)
- —Export et impression du programme et des classements
F2B — Vol acrobatique
- —Saisie des scores par manœuvre pour chaque juge
- —Calcul automatique : moyenne juges × coefficient par manœuvre
- —Classement par somme des meilleures manches
- —Analyse des scores par juge (détection des écarts)
F2C — Course en équipe
- —Tirage au sort automatique en groupes complets de 3 équipes
- —Gestion des phases : qualifications (3 ou 4 manches), demi-finales, finale (200 tours)
- —Système de refly : pool automatique des équipes en attente et des équipes sans course
- —Volontaires en qualification, réserves automatiques en demi-finales
- —Blocage de la progression tant que toutes les équipes n'ont pas volé
- —Attribution des pistes en finale par classement (rouge · bleu · jaune)
F2D — Combat
- —Tirage au sort des combats avec gestion des byes
- —Refly F2D
- —Classement automatique par résultats de combat
F2F — Good Year
- —Support complet de la discipline
- —Gestion des équipes pilote / mécanicien