PlayerModele - v-l-m/vlm GitHub Wiki

Cette page est destinée à décrire le modèle VLM de gestion des JOUEURS (=players) pour qu'ils puissent avoir plusieurs BATEAUX (=boats), ainsi que les modalités de migration de l'ancien modèle vers le nouveau.

#Etat des lieux, juin 2010

  • un utilisateur un compte
  • tout est dans la table user, hormis
    • quelques préférences de cartes, qui sont associées à un idusers dans user_prefs
    • les logs utilisateurs dans user_action
    • les résultats aux courses, dans les tables races_results et waypoints_crossing

#Les inconvénients

  • partage de mots de passe entre utilisateurs pour le boat-sitting
    • mauvais principe de sécurité
    • banalisation de certains compte
    • déresponsabilisation des joueurs vis à vis de bateaux "commun"
    • difficultés pour les équipes nombreuses pour identifier qui a fait un changement sur un bateau
  • difficultés pour avoir une vision globale d'un joueur
    • les joueurs ont plusieurs bateaux (plusieurs compte users)
    • le nombre d'users n'est pas un indicateur fiable du nombre de joueurs
    • il n'y a pas de lien entre les bateaux
  • corollaires :
    • l'adresse email n'est pas fiabilisée
    • il est difficile d'offrir une interface multi-courses pour les joueurs
    • il est difficile, sauf à multiplier les données, d'offrir une interface de communication
    • impossible de consolider des classements...
    • ...etc...

#Sémantique & conventions

  • player skipper
  • boat un bateau tel qu'actuellement
  • boatpseudo = username tel qu'actuellement
  • boatpassword = le mot de passe associé à l'username dans l'ancien mode.
  • boatname = le nom du bateau (champ actuel)
  • un idusers #
  • un idplayers @

#Spec Générale / expression de besoin

  • Un player_' a plusieurs (0..n) '_boats.
  • Un boat appartient à UN player
  • Un boat à 0..n boatsitter(s)
  • Un boat a des préférences propres (carte, pavillon)
  • Un joueur à des préférences propres (équipe, pays, email, ...)
  • La transition doit être gérable pour les outils comme pour les joueurs.

#Contraintes / Questions

Technique & Outils

  • minimiser les changements dans le modèle actuel
  • laisser un chemin de migration aux outils
    • permettre l'ancien mode as is
    • générer un mot de passe automatique à la création d'un bateau "nouveau" et le stocker dans users
    • cela permet aux anciens outils de fonctionner (le joueur leur fournit le mot de passe automatique)

Préférences

  • l'email utilisé comme identifiant de compte n'est pas celui exposé (ou pas) par le joueur vis à vis de l'extérieur.
    • plus précisément : l'email identifiant n'est PAS modifiable et n'est JAMAIS affiché. OK

Affichage/Interface

  • donner aux joueurs la possibilité de regrouper eux même leurs bateaux.
  • contrainte d'affichage; Dans les classements, on affiche le "nom du skipper" sur "bateau"
    • Comment gérer les contraintes de longueurs de noms ? (on veut autoriser des noms poétique mais pas pourrir les classements avec...)

Identifiants / Mot de passe / tracabilité

  • L'identifiant le plus simple et le plus signifiant est une adresse email, qu'il faudra valider (par envoi d'un lien de confirmation).
  • password hashé dans la base => OK en sha256
    • Impact sur la récupération de mot de passe => Simple formulaire pour demander le réenvoi (c'est le ticket #404)
    • Modalités pour les admins de pouvoir se connecter quand même sur le compte d'un user pour voir ce qu'il voit => oui
    • Modalités pour un admin de faire un reset du password d'un boulet.
  • besoin de tracer les player_action ?
    • ajouter une colonne player dans le log user.

Les arguments pour inciter à la migration des outils et des joueurs

  • intégrer la notion d'adresse de contact (VW, twitter, facebook, email, jabber, ...)
  • faire un classement des players (décroissant par nombre de n°1, puis n°2 pour départager, etc...) et un nombre rapporté au nombre de participation (?)

Les trucs pas pour la prochaine version

  • la gestion d'équipe
  • la possibilité de simplement voir un bateau (i.e : un droit moins fort que le boatsitter qui peut aussi le diriger)
  • préférences liées en fait au player (pavillon != pays, avatar, ...)
  • la polaire est actuellement rattaché au boat et utilisée comme telle par le moteur. Ce qui fait qu'on peut techniquement avoir des boats de plusieurs catégories sur la même course.
    • veut on garder cette possibilité ? pour l'instant : OUI, ne serait que pour l'IceBreaker.
    • du même ordre, mais ce n'est pas contradictoire, veut on définir de façon définitive le type d'un bateau (ex : on construit un immoca, et ce sera un immoca pour toujours, comme en vrai ;))
    • on verra plus tard :)
  • gérer la préférence de langue et de native language (langage souhaité) dans players (c'est le ticket #96)

v0.14

Le ticket #136 est à fermer à la fin de la feuille de route

  • le ticket #357 est destiné à l'implémentation primaire (création de compte player, envoi du mail de confirmation)
  • le ticket #210 pour l'interface pour changer le mot de passe
  • le ticket #364 pour pouvoir rattacher un bateau, et les IHM permettant de visualiser le résultat
  • le ticket #365 pour pouvoir se logguer dans le nouveau mode tout en gardant l'ancien mode, et pouvoir changer de bateau.
  • le ticket #368 pour pouvoir créer un bateau en tant que player.
  • le ticket #380 pour administrer les liens players / users et détecter les anomalies
  • le ticket #210 : permettre au joueur de changer son mot de passe
  • le ticket #404 (bien nommé !) : permettre au joueur de demander un nouveau mot de passe.
  • le ticket #381 pour les WS (get) pour les fonctions ci-dessus
  • le ticket #367 pour tracer les players actions.
  • le ticket #377 pour les IHM de gestion du boatsitting (et modif de l'auth associé)
  • le ticket #389 pour gérer le mode admin en tant que player
  • le ticket #383 pour le nettoyage auto de la table players_pending

v0.17

  • le ticket #96 : pour enrichir les fonctionnalités de langue.
  • le ticket #387 : pour enrichir les fonctionnalités de communication

v0.18

  • le ticket #323 pour le ws/playersetup
  • le ticket #384 : affichage du nom du joueur et des boatsitters récents dans le palmares
  • le ticket X pour blinder les contrôles lors de la création des nouveaux objets.
  • le ticket #382 : distingo profile, results et palmares
  • le ticket #154 : pour ajouter un tchat jabber intégré dans vlm
  • le ticket X pour distinguer le pays du pavillon (?)
  • le ticket X pour la gestion d'équipe
  • le ticket X pour un classement par podium et par joueur
⚠️ **GitHub.com Fallback** ⚠️