Organiser des tournois, pour de vrai.
RacketHub est né d’un besoin concret : gérer des tournois de ping-pong entre collègues, avec un classement fiable et des mises à jour en temps réel. Le prototype a été construit en monolithe Next.js, puis migré vers une architecture Go + Expo + Astro pour viser le mobile natif et de meilleures performances.
Un backend Go, une app Expo, une landing.
Le backend Go expose 54 endpoints REST via Chi router, avec des requêtes type-safe générées par sqlc, des transactions PostgreSQL avec verrouillage optimiste, et un système SSE temps réel propagé via NATS pour le multi-instances.
L’app mobile Expo couvre 19 écrans : tournois en brackets, défis Solo 1v1, matchs Team 2v2, mode Tournante multi-joueurs, classements ELO par mode, profils joueurs avec graphiques d’évolution, et 33 badges à débloquer. Authentification JWT avec refresh token rotation, mode offline via MMKV, et push notifications.
Du premier match au classement final, tout en une app.
Inscription, création de tournoi, matchs en direct, classement ELO mis à jour en temps réel, badges débloqués : tout fonctionne de bout en bout sur mobile. Reste la landing page et le déploiement en production.