Changelog

Historique des versions de F2Arena. Version actuelle : v0.13

v0.13

2026-03-22Version actuelle
Sé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-22
Internationalisation (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-22
Internationalisation (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-22
Internationalisation (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-21
Classements 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-21
Liste 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-18
Fusion 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-18
Refonte 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-17
Nouvelles 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-16
Amé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-15
Nouvelles 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-15
Nouvelles 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-15
Nouvelles 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