Spécifications fonctionnelles et techniques - Pauooo/MateFinder GitHub Wiki

Spécifications fonctionnelles

Scenarii d'utilisation : user stories

Accueil/Landing

  • En tant qu'utilisateur non connecté, j'ai besoin de deux boutons "sign-up"/"sign-in" afin de pouvoir choisir si je m'identifie ou si je crée un compte.

Identification

  • En tant qu'utilisateur non connecté, si j'ai cliqué sur "sign-up", j'ai besoin d'un formulaire de création de compte afin de me créer un compte.

  • En tant qu'utilisateur non connecté, si j'ai rempli correctement et validé le formulaire de création de compte, j'ai besoin d'une confirmation de création de compte.

  • En tant qu'utilisateur non connecté, si j'ai cliqué sur "sign-in", j'ai besoin d'un formulaire d'identification afin de m'identifier.

  • En tant qu'utilisateur non connecté, si j'ai cliqué sur "sign-in" et que je ne me souviens plus de mon mot de passe, j'ai besoin d'un formulaire où renseigner mon e-mail pour qu'un nouveau mot de passe me soit envoyé.

Navigation générale

  • En tant qu'utilisateur connecté, j'arrive par défaut sur la page de recherche de partenaire.
  • En tant qu'utilisateur connecté, je peux accéder à mon profil grâce à "mon compte" du menu de navigation.
  • En tant qu'utilisateur connecté, je peux me déconnecter grâce à "me déconnecter" du menu de navigation.
  • En tant qu'utilisateur connecté, je peux accéder aux mentions légales grâce au lien situé en bas de l'écran.
  • En tant qu'utilisateur connecté, je peux accéder au contact grâce au lien situé en bas de l'écran.

Recherche de partenaires

  • En tant qu'utilisateur connecté, j'ai besoin d'un bouton de switch afin de choisir si je suis "solo" ou en "team".
  • En tant qu'utilisateur connecté, "solo" ou "team", j'ai besoin d'un formulaire pour préciser ma recherche de partenaire en fonction de la langue, du jeu et du format de jeu.
  • En tant qu'utilisateur connecté, une fois ma recherche soumise, j'ai besoin d'un loader pour me signifier que ma recherche est en cours.
  • En tant qu'utilisateur connecté, une fois ma recherche soumise, j'ai besoin d'un bouton "annuler la recherche" afin de pouvoir annuler ma recherche si je le souhaite.
  • En tant qu'utilisateur connecté, une fois ma recherche soumise, du contenu en lien avec ma recherche m'est proposé en dessous du loader.
  • En tant qu'utilisateur connecté, une fois ma recherche terminée, j'ai besoin de recevoir une alerte (toast) qui me notifie la fin de recherche.

Notification de fin de recherche

  • En tant qu'utilisateur connecté, si ma recherche a abouti sur la rencontre de partenaires, je choisi d'accepter ou non d'être mis en lien avec les autres partenaires de jeu trouvés :

    • si j'accepte : dans la même boite de dialogue, je peux voir en temps réel si les autres partenaires acceptent d'être mis en relation.
    • si je n'accepte pas (si je clique sur non ou que le temps maximal de temps s'est écoulé) : je suis redirigé sur la vue de recherche et les autres partenaires sont notifiés que la recherche de partenaire reprend dû à un désistement.
  • En tant qu'utilisateur connecté, si ma recherche n'a abouti sur aucune rencontre de partenaires, la notification me propose de relancer une recherche avec des critères moins stricts.

Mise en relation des partenaires

  • En tant qu'utilisateur connecté et qui a accepté la mise en relation avec les partenaires de jeu trouvés, si tous les partenaires de jeu acceptent l'invitation à rejoindre une chatroom, l'ensemble des utilisateurs seront simultanément redirigés vers la chatroom.

Description de l'interface : wireframes

Charte graphique

  • Colors

Grey - N50 - #C1C7D0

Yellow - Y200 - #FFC400

Purple Grey - N400 - #505F79

White - N0 - #FFF

Ombre : c'est le noir par défaut, seule l'opacité vari

  • Fonts

du + au - gros :

  • Maiden Crimes
  • Roboto Slab
  • Montserrat les 3 sont libres de droit (enfin pas la première en cas de commercialisation)

Questions techniques d'importance

  • Durée de vie de la chatroom : Que devient la chatroom quand il n'y a plus d'utilisateurs ?

Spécifications techniques

Technologies utilisées

Back

Front

  • Techno principale : ReactJS
  • Redux (Gestion de state/Middleware)
  • React-Router (Gestion des vues)
  • Socket.io-client (pour l'échange avec le Back)

Authentification

Dépendances et autre

Dictionnaire des données

Name Type Default Other
Users
id int Auto-increment
username VARCHAR(255)
email VARCHAR(255)
password VARCHAR(255)
room_id int -1
date_signup DATE current date
Rooms
id int Auto-increment
max_user int
current_user int
open bool true
Messages
id int Auto-increment
user_id int
room_id int
message VARCHAR(255)
date DATE current date
ip_address int
Games
id int Auto-increment
name VARCHAR(255)
formats VARCHAR(255)

Diagramme de Classe

DiagrammeClasse