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.