Spécifications - CGI-Grenoble/1T-Bonnes-Pratiques-Green-IT-v1 GitHub Wiki

Besoin fonctionnel

Priorité 1

  • Authentification et création d'un compte joueur (saisie pseudo, ...)
  • Page accueil du joueur (modifier pseudo, voir liste des organisations auxquelles j'appartiens, voir liste de pratiques, liens vers les ressources utiles)
  • Créer une organisation (et j'en deviens owner)
  • Demander à rejoindre une organisation
  • Inviter des joueurs non inscrits via saisie email (envoi d'invitation) et ajout automatique à mon organisation
  • Créer une partie
  • Jouer une partie (tour par tour)
  • Implémenter logique de jeu : dépose d'une carte de bonne pratique
  • Implémenter logique de jeu : dépose d'une carte de mauvaise pratique et formation
  • Implémenter logique de jeu : différenciation des 3 types de mauvaises pratiques et formation
  • Implémenter logique de jeu : dépose d'une carte de sensibilisation
  • Après chaque bonne ou mauvaise pratique - sélectionner que faire de la pratique (non applicable, déjà appliquée, à appliquer en priorité)
  • Liens vers la description de la pratique dans les référentiels (115 BP ou GR491)
  • Explication des règles - version simple
  • Implémentation logique de jeu : dépose d'une carte experts

Priorité 2

  • CRUD de gestion des cartes de jeu
  • Plateau de jeu attractif et animations de jeu
  • Explication des règles - version animée ou vidéo
  • Inviter une liste de personnes via csv avec emails
  • Déléguer les droits sur une organisation
  • Chat pour discussion entre les joueurs

Besoins non fonctionnels

  • Multilingue : avec implémentation de 2 langues pour démarrer (français et anglais)
  • Accessible via un navigateur web et sur mobile => 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é: un audit de code (effectué par CGI) sera réalisé sur le code produit
  • Technologies de développement: Back-end : Java+Spring ou Node, Front-end: Single Page Application Javascript ou Typescript (Angular, VueJS React ou Svelte)