ENSIIE / Projet web / Application de ranking pour babyfoot

Application de ranking pour babyfoot.

Contexte du projet

Le babyfoot à l’école, on est tous passé par là. On joue, on s’amuse on essaye d’être meilleur. On rage aussi parce que “ce sont toujours les mêmes qui gagnent”, mais au final, on arrive jamais à déterminer proprement qui est le plus fort.

Le but du projet est de produire une application web qui va utiliser des algorithmes de ranking pour pouvoir établir un classement parmis les joueurs de babyfoot de l’école.

Rassurez vous, on ne vous demande pas d’inventer de toute pièce les algorithmes en questions, il suffira de les implémenter :).

L’algorithme le plus connu en terme de classement est le “ELO” (https://fr.wikipedia.org/wiki/Classement_Elo), initialement utilisé pour classer les joueurs d’echec. Cet algorithme présente néanmoins une faille majeur : il n’est pas adapté pour les parties en équipe.

Du coup, Microsoft a créé un nouvel algorithme basé sur le “ELO” pour son système de classement dans ses jeux vidéo. Le “TrueSkill” (https://en.wikipedia.org/wiki/TrueSkill).

Pré-requis

Comme pour tous les sujets, on devra au moins retrouver dans l’application finale les parties suivantes :

  • Une authentification
  • Un compte administrateur donnant les droits à certaines fonctionnalités (au choix)
  • Un profil utilisateur éditable
  • Une base de données relationnelle :
  • au moins 3 tables
  • au moins une table de jointure (1…n, n…n)
  • au moins une jointure dans une requête
  • des INSERT, DELETE, UPDATE, SELECT
  • Un CRUDL (Create Read Update Delete List)
  • Du javascript (au minimum validation JS des formulaires)

Objectifs

Proposer une application qui va permettre de classer les joueurs de babyfoot de l’école.

En plus de proposer une application web permettant d’inscrire des joueurs, de créer des parties, de se logger et de rentrer des scores sur des parties, il va falloir implémenter dans l’application au moins un des algorithmes de classement, pouvoir consulter ce classement, le détails des parties et l’évolution des joueurs.

Les difficultés du projet

La difficulté majeure du projet ne réside pas dans l’implémentation de l’algorithme mais dans la structure du code.

En effet, c’est le seul projet qui présente une vraie logique métier, on va donc pouvoir voir immédiatement si la norme MVC est bien comprise et acquise. Il faudra prêter particulièrement attention à la position de chaques parties du code.

Propositions de features

Comme pour tous les projets, vous pouvez choisir de l’adapter / de l’étoffer tant que tous les pré-requis sont remplis. Voici en exemple une petite liste de fonctionnalités qui pourraient être implémentées dans le cadre du projet :

  • Double système de ranking solo / en équipe
  • Un graph permettant de visualiser la courbe de progression des joueurs
  • Un système de tournoi
  • Des statistiques sur les réussites d’un joueurs contre un autre joueurs
  • Un système d’équilibrage qui à partir d’une selection de joueur propose des équipes équilibrés
  • etc