La Fédération de Wushu et Disciplines Associées fédère les clubs français de kung-fu wushu (arts externes, arts internes et arts énergétiques) à travers 22 ligues régionales couvrant la métropole, la Corse et l'outre-mer. Sa gestion des affiliations et des licences reposait encore sur des circuits papier et des outils dispersés. La mission : concevoir et livrer, de zéro, la plateforme unique où clubs, pratiquants et administrateurs gèrent tout le cycle de vie d'une saison sportive, de la demande d'affiliation au document officiel vérifiable. Le projet a été mené seul, de bout en bout, en environ six semaines : une spécification fonctionnelle et technique de 1 300 lignes rédigée avant la première ligne de code (34 sections, deux décisions d'architecture documentées, une matrice de conformité au cahier des charges), un design system de 821 lignes de CSS écrit à la main sans framework UI, un monorepo TypeScript d'environ 21 500 lignes réunissant React 19, Express et un package de contrats partagés, puis l'infrastructure, la recette client et la mise en production.
Le principe qui structure tout le back-office : chaque dossier porte trois statuts qui restent strictement indépendants et ne sont jamais fusionnés, un pour l'instruction administrative, un pour le paiement, un pour la validation des pièces. Un dossier payé n'est pas un dossier validé. À l'envoi, le dossier fige son prix et un instantané des données du licencié, si bien que les documents officiels sont toujours générés à partir de ce qui a été réellement validé, même si le profil évolue ensuite. Les numéros d'affiliation et de licence sont émis par compteurs atomiques strictement croissants, et chaque licence ou attestation sort en PDF signé, numéroté et versionné, avec empreinte SHA-256 et QR code renvoyant vers une page publique qui confirme sa validité sans exposer la moindre donnée personnelle.
Côté sécurité : sessions opaques dont seul le condensat est stocké, cookie HttpOnly, verrouillage temporaire après échecs de connexion, contrôle d'origine anti-CSRF sur chaque mutation, rate-limiting, en-têtes Helmet, fichiers privés servis exclusivement par l'API depuis un stockage à clés assainies. La configuration de production, elle, refuse de démarrer si Stripe, SMTP, HTTPS ou la signature présidentielle manquent. Côté RGPD : purge quotidienne paramétrable, anonymisation des profils au-delà de la durée de conservation, export de données en libre-service, refus explicite de l'effacement tant qu'une obligation comptable légale court, et une minimisation assumée, aucun questionnaire de santé n'étant jamais transmis à la fédération. Le tout est couvert par 57 cas de tests Vitest, 11 parcours e2e Playwright joués sur deux profils (desktop et iPhone) et un pipeline de régression visuelle maison, puis exploité sur VPS OVH via un Docker Compose à six services, avec sauvegardes ZIP atomiques à restauration éprouvée, maintenance planifiée par timer systemd et reverse proxy Nginx TLS entièrement commenté. Livré avec trois guides utilisateurs PDF, un guide vidéo d'administration et la documentation d'exploitation.





