← Retour aux projets
Étude de cas 003 · Projet personnel — plateforme grand public

Plateforme de loterie en ligne

Organiser des campagnes de tirage au sort et permettre aux joueurs de vérifier les résultats.

ContexteProjet personnel — plateforme grand public
TechnologiesNode.js · Express · TypeScript · Vue 3 · MongoDB · Redis
CodeAccès en lecture sur demande
Le catalogue des loteries : cagnottes, catégories et statuts en direct
Le catalogue des loteries : cagnottes, catégories et statuts en direct
01 — Problème

Rendre le résultat d’un tirage vérifiable

LuckyDraw permet de créer un compte, d’acheter des tickets et de consulter son historique de participation. Les campagnes, les résultats et les statistiques sont gérés depuis une interface d’administration. Le moteur de tirage utilise un mécanisme commit-reveal pour permettre la vérification du résultat.

02 — Contraintes

Vérifier les tirages et représenter les montants

Le joueur doit pouvoir vérifier le résultat à partir des informations publiées par le moteur. Les montants sont stockés en centimes entiers pour éviter les erreurs liées aux calculs en virgule flottante.

03 — Démarche

Engager, révéler, vérifier

Front-endUn espace joueur et un back-office d’administration des campagnes.
Back-endUn moteur de tirage qui publie une empreinte avant le tirage, puis révèle la graine utilisée.
Base de donnéesCampagnes, tickets, participations et transactions.
  • Mécanisme commit-reveal permettant au joueur de recalculer et vérifier le résultat
  • Campagnes configurables (règles, calendrier, gains)
  • Achat de tickets et historique de participation
  • Back-office : résultats, transactions, statistiques, exports
Chaque tirage est cryptographiquement vérifiable (commit-reveal) : hash publié avant, graine révélée, résultat rejouable
Chaque tirage est cryptographiquement vérifiable (commit-reveal) : hash publié avant, graine révélée, résultat rejouable
Parcourir les loteries et jouer, aussi depuis mobile
Parcourir les loteries et jouer, aussi depuis mobile
04 — Résultat

Des vérifications couvertes par des tests

Les tests portent notamment sur la vérification de la graine, le refus d’un second tirage et la représentation des montants.

  • Graine engagée par un hash SHA-256 publié avant le tirage, révélée après : un tirage authentique est validé, une graine falsifiée est rejetée
  • Tirage immuable : un second tirage sur la même loterie est refusé
  • Montants stockés en centimes entiers, sans arithmétique flottante
  • 45 tests automatisés (43 unitaires et d’intégration, 2 parcours de bout en bout) ; lint, typage, tests et build bloquants en CI
Fiche loterie : gain, prix du ticket, tirage daté et règlement
Fiche loterie : gain, prix du ticket, tirage daté et règlement
Page d’accueil de la plateforme de tirages au sort
Page d’accueil de la plateforme de tirages au sort
Accès au code

Sur demande, je peux vous donner accès au dépôt en lecture ou vous présenter l’architecture, le code et les choix techniques de ce projet.

Demander l’accès au dépôt
Projet suivant — 004Gestionnaire de mots de passe →
Contact

Un projet à concevoir ou à faire évoluer ?

Parlons de vos besoins, de vos contraintes et des prochaines étapes.

Travaillons ensemble
© 2026 Hamed Bouare — Tous droits réservésDisponible pour de nouveaux projetsLinkedIn