Documentation - CGI-Grenoble/1T-Bonnes-Pratiques-Green-IT-v1 GitHub Wiki

Fonctionnalité État Remarque
Organisations
Créer une organisation Attention, les rôles ne sont pas vérifiés. On doit vérifier dans le front que seuls les org-admins puissent gérer des organisations.
Accepter / Refuser une demande d’adhésion à l’organisation
Modifier : nom, publique ou privée, description
Consulter les membres d’une organisation
Demander à rejoindre une organisation
Lien d’invitation pour rejoindre une organisation Les personnes sont invitées via un lien qui les font automatiquement rejoindre l'organisation sans validation supplémentaire. Le lien n'est utilisable qu'une seule fois et possède une durée déterminée par le(s) org-admin.
Importer une liste de membres depuis un fichier CSV
Déléguer les droits sur une organisation
Partie
Créer un salon Un salon est créé en choisissant une organisation à laquelle la partie appartient
Inviter des personnes à rejoindre une partie via un lien
Parcourir la liste des salons publiques pour rejoindre une partie
Lancer une partie
Bonnes pratiques
Afficher récap bonnes pratiques Affiche le nombre de bonnes pratiques par catégorie
Afficher les cartes pour chaque catégorie de bonne pratique
Référentiel (115 BP ou GR491)
Authentification (Keycloak)
Créer un compte
Se connecter
Se connecter avec des services tiers
Se déconnecter
Jeu
Fond de jeu (image)
Déplacer une carte (général)
Logique de jeu: déposer une carte bonne pratique
Logique de jeu: déposer une carte mauvaise pratique et formation
Logique de jeu: différenciation des 3 types de mauvaises pratiques et formation
Logique de jeu: déposer une carte de sensibilisation
Jouer une partie (tour par tour)
Catégoriser une bonne pratique lorsque la carte est jouée (non applicable, déjà appliquée, à appliquer en priorité ou non rencontrée)
Quizz lorsqu’une carte sensibilisation est jouée Poser une question aux joueurs avec réponse
Lien vers la description de la pratique dans les référentiels
Explication des règles Page dédiée accessible depuis la barre de navigation
Explication des règles - version animée ou vidéo
Logique de jeu: déposer une carte expert
CRUD de gestion des cartes de jeu Seule la partie back est réalisée
Plateau de jeu attractif et animations de jeu
Chat pour discussion entre les joueurs
Non fonctionnel
Multilingue
Accessible via un navigateur web => privilégier une PWA (Progressive Web App) - Jeu connecté uniquement - pas de besoin déconnecté
Accessibilité : tester l'accessibilité du site développé et le rendre accessible pour les daltoniens à minima
Green IT : tester l'utilisation de ressources du site avec GreenIT analyser et Lighthouse et adopter les bonnes pratiques de base (notamment au niveau de la compression des images)
Performance: toute action réalisée sur le site doit avoir une latence de moins d'1 seconde
Charge: le jeu doit supporter 20 parties de 4 joueurs en parallèle
Le jeu doit pouvoir être joué dans toutes les parties du monde, vérifier la performance si exécution en Chine ou aux Etats-Unis en plus de l'Europe
Maintenabilité: le code produit doit être testé dans Sonar
Sécurité: l'accès au jeu doit se faire via un SSO (s'appuyer par exemple sur Keycloak qui permet de s'authentifier sur plusieurs fournisseurs SSO)
Sécurité: audit de code à effectuer par CGI

Documentation

Fonctionnement (théorique)

Utilisateurs

  • Le site est géré par un ou plusieurs administrateurs qui possèdent tous les droits (accès à la base de donnée, modifier les rôles...). Ils peuvent sélectionner certains utilisateurs et leur assigner le rôle de org-admin.
  • Un org-admin peut gérer des organisations. Un org-admin peut inviter et supprimer des utilisateurs d'une organisation.
  • Un utilisateur est le rôle de base de l'application. Il peut rejoindre des organisations publiques et créer et rejoindre des salons de jeu.

Organisations

Il existe deux types d'organisations:

  • Des organisations publiques qui seront visibles par tout utilisateur connecté. N'importe qui peut demander à rejoindre ces organisations. Lorsqu'une demande pour rejoindre une organisation a été effectuée, le(s) org-admin de l'organisation peut accepter ou non la demande.
  • Des organisations privées qui ne sont pas visibles et seulement joignables via une invitation envoyée par le(s) org-admin de l'organisation. Les personnes sont invitées via un lien qui les font automatiquement rejoindre l'organisation sans validation supplémentaire. Le lien n'est utilisable qu'une seule fois et possède une durée déterminée par le(s) org-admin. (Une invitation est aussi possible pour les organisations publics)

Les org-admin des organisations peuvent aussi charger un document .csv contenant une liste d'emails. L'application enverra ensuite une invitation à rejoindre l'organisation à toutes les personnes dont leur mail est dans le fichier.

Créer et rejoindre une partie

N'importe qui appartenant à une organisation peut créer une partie. L'utilisateur créant la partie sélectionne l'organisation avec laquelle il veut jouer et un salon est ensuite créé. Il suffit d'attendre que le salon soit plein (entre 3 et 5 joueurs) pour commencer à jouer.

L'utilisateur qui a créé la partie peut créer un lien d'invitation pour des personnes n'ayant pas encore de compte sur le site. Ce lien est valabne jusqu'à ce que la partie se lance. Si une personne cliquant sur le lien ne possède pas de compte, on lui propose de créer un compte pour pouvoir ensuite rejoindre le salon de jeu. Sinon, le lien mène directement au salon.

Pour rejoindre une partie public, il suffit de parcourir la liste des salons libres. Les salons affichés ont été créés à partir d'organisations publics, donc n'importe qui appartenant à ces organisations peuvent les rejoindre.

Lien entre les pages du site

routes

Modèle de données

graphviz(1)