Mini-jeuxÉtude de cas — écosystème abrt

Mes projets
En ligne

Mini-jeux — casino virtuel

Plateforme de jeux avec comptes joueurs branchés sur le SSO de l'écosystème

HTML CSS JavaScript PHP MySQL SSO Ouvrir le site Me contacter

Le contexte

Un casino virtuel rassemblant plusieurs mini-jeux et une cagnotte fictive. À l'origine 100% HTML/CSS/JavaScript avec un flux invité, le projet a ensuite gagné un système de comptes joueurs optionnel branché sur le SSO de l'écosystème, pour persister la cagnotte côté serveur.

Mon rôle

Conception et développement complet : les jeux en JavaScript, l'API PHP, le schéma de base de données et l'intégration au SSO.

L'objectif

Une plateforme de jeux simple et fluide, plus un vrai système de comptes optionnel : la cagnotte est retrouvée sur tous les appareils une fois connecté.

Comment c'est fait

  • Jeux développés en JavaScript pur
  • Flux invité conservé (prénom → cagnotte en localStorage)
  • Compte optionnel branché sur le SSO existant (cookie partagé, comptes taggés « minijeux »)
  • API PHP (inscription, connexion, chargement/sauvegarde) avec mots de passe hachés (bcrypt) et requêtes préparées (PDO)
  • Synchronisation serveur de la cagnotte, avec migration de la cagnotte invité à la connexion
  • Comptes joueurs identifiés par une origine « minijeux » et administrables dans la gestion des utilisateurs via un filtre

Difficultés rencontrées et solutions

  • Ajouter des comptes sans toucher aux jeux. Les jeux passent tous par un objet GameState : c'est lui qui a été rendu compatible avec le SSO (promesse ready, synchronisation serveur différée), sans modifier les fichiers des jeux. Un bug en est ressorti : un lien direct redirigeait avant que l'état du compte soit chargé ; il attend désormais GameState.ready.
  • Une déconnexion partagée. Se déconnecter détruit la session SSO commune : le joueur est aussi déconnecté des autres sites. C'est le comportement attendu d'un compte unique, mais il fallait le savoir et le documenter.
  • Des comptes publics à encadrer. L'inscription est publique : elle est limitée côté serveur, les mots de passe sont hachés et les requêtes préparées. Les comptes joueurs ont une origine « minijeux » ; ils ne sont plus cachés de l'administration, un filtre permet de les consulter et de les supprimer (droit à l'effacement).
  • Un pied de page légal invisible. Placé dans la barre de navigation fixe du bas, le bloc des mentions légales se retrouvait à largeur nulle. Il a été sorti dans son propre conteneur avec width:100%, le <body> étant en flex colonne.
  • Des styles en ligne à la chaîne. 46 attributs style= ont été retirés ; ceux qui portaient l'angle de chaque case de la roulette passent par un attribut data-i recopié en variable CSS par quelques lignes de JavaScript.

Compétences BTS SIO mobilisées

Ce projet s'inscrit dans plusieurs compétences du référentiel BTS SIO, option SISR :

  • Bloc 1 Mettre à disposition des utilisateurs un service informatique
  • Bloc 3 Gérer les identités et les habilitations
  • Bloc 3 Protéger les données à caractère personnel (mots de passe hachés)
  • Transverse Travailler en mode projet

Pour aller plus loin

Voir aussi

D'autres études de cas de l'écosystème, proches de celle-ci :