Une application développée pour les équipes du groupe Nosoli : chacun pronostique le score des matchs de l'équipe de France, un classement en temps réel départage les pronostiqueurs.
Voir le site (nouvel onglet)Stack technique
- React Router 7
Rendu SSR en framework mode, loaders/actions par route.
- Drizzle ORM + better-sqlite3
Accès typé à une base SQLite, migrations générées par drizzle-kit.
- Sessions cookie + bcryptjs
Authentification par mot de passe hashé, sans dépendance externe.
- SCSS
Atomic design (atoms/molecules/organisms) et méthodologie BEM.
Points techniques
- Scoring à 3 niveaux
3 points pour un score exact, 2 points si l'écart de buts est correct (le résultat l'est donc forcément), 1 point pour un résultat juste seul, 0 sinon.
- Scheduler adaptatif
Le service ajuste lui-même la fréquence de ses sondages : resserrés sur les fenêtres de fin de match, en veille le reste du temps, avec un rafraîchissement quotidien à minuit (heure de Paris) pour les nouvelles phases du tournoi.
- Fuseaux horaires des stades
Les 16 stades du Mondial 2026 (Mexique, États-Unis, Canada) sont mappés à leur fuseau IANA. Les horaires de l'API externe sont convertis en UTC puis affichés à l'heure de Paris.
- Pronostics masqués + filet admin
Les pronostics restent cachés jusqu'au coup d'envoi pour éviter toute copie, puis sont révélés et classés après le match. Un admin peut corriger un score en cas d'erreur de l'API externe.
Déploiement
Hébergé sur mon VPS, en HTTPS avec redémarrage automatique et déploiement continu. La base SQLite est sauvegardée chaque nuit.
li