Circled Fight
Vingt-trois pages écrites à la main pour faire tourner les tournois d'une communauté — et la démonstration, par l'usage, de ce qu'il fallait construire ensuite.
Ce que c'était
Le site de ma communauté de jeu, avant The Circle. Tout y est passé au fil des saisons : les tournois et leurs arbres de rencontres, les classements, un tableau de bord pour le mode battle royale, un autre pour les mini-jeux, les scores 1 contre 1, une boutique, un système de paris entre membres avec son historique, la liste des membres, un espace d'administration, et même des pages saisonnières pour Halloween et Noël.
Le tout en HTML, CSS et JavaScript écrits à la main, sans aucun framework, avec Firebase pour la connexion et les données. Vingt-trois pages, chacune complète et autonome.
Ce que ça m'a appris — en me faisant mal
Ce projet est le meilleur professeur que j'aie eu, parce qu'il m'a fait rencontrer tous les problèmes que résolvent les outils que j'utilise aujourd'hui. Pas en lisant qu'ils existaient : en les subissant.
- Vingt-trois pages, vingt-trois copies de l'en-tête. Changer un lien de navigation voulait dire ouvrir vingt-trois fichiers. J'en ai toujours oublié un. C'est exactement le problème que résout un composant partagé — je l'ai compris parce que je l'avais vécu.
- Les données et l'affichage mélangés. Les scores vivaient dans des fichiers de données édités à la main, saison par saison, à côté du code qui les affichait. Ajouter une saison voulait dire dupliquer un fichier. Il n'y avait aucune frontière entre ce que le jeu sait et ce que l'écran montre.
- Aucune règle côté serveur. Les vérifications vivaient dans le navigateur, donc dans les mains de l'utilisateur. C'est cette page-là de mon apprentissage qui explique pourquoi, aujourd'hui, j'écris le cloisonnement dans la base plutôt que dans l'application.
- Rien n'était testable. Pour vérifier qu'un classement était juste, il fallait ouvrir le site et regarder. Aucune logique n'était isolée de l'affichage — c'est devenu une règle d'architecture dans tous mes projets suivants.
On ne comprend vraiment un outil qu'après avoir souffert de son absence.
La suite
The Circle est né de ces limites, et point par point : des composants au lieu de pages copiées, une vraie base relationnelle au lieu de fichiers de données, des règles de sécurité écrites dans la base, et une logique séparée de l'affichage. Ce n'est pas une réécriture de plus — c'est la réponse à une liste de problèmes que j'avais tous rencontrés à la main.
Le site est resté en ligne, et je n'en suis plus responsable : la communauté l'a repris. Je le garde ici parce qu'un portfolio qui ne montre que l'état final ne montre pas grand-chose du chemin.