Backlog - jclaerhout/Projet_Web_III_2023 GitHub Wiki

Liste des personas

  • Photographe professionnel : l'utilisateur a un besoin commercial sur le site. Il utilise le site web comme vitrine de ses projets et met en avant son travail.

  • Personne à la recherche de photographe : l'utilisateur utilise le site web afin de trouver un professionnel qui pourra répondre à son besoin.

  • Personne passionnée : l'utilisateur utilise la plateforme afin de partager ses photos personnelles. Mais aussi pour suivre des amis ou professionnel du milieu.

  • Personne lambda : un utilisateur qui utilise le site web sans convictions. Cette personne navigue sur le site pour simplement découvrir des photos.

  • Utilisateur malveillant : cet utlisateur utilise la plateforme pour réutiliser et exploiter les photos à des fins malicieuses.

Liste des utilisateurs

  • Administrateur : Gestion des utilisateurs et de ce qui est posté sur le site

  • Utilisateur connecté : Utilisateur qui a donné ses coordonnées et qui peut poster des photos et interagir avec les autres utilisateurs

  • Utilisateur : Utilisateur non connecté au site, il peut juste voir les photos que les utilisateurs connectés ont posté et faire des recherches

User Stories

[Toutes les User Stories utiles pour réaliser l'application. Elles doivent être nommées comme demandées et TRIEES PAR ORDRE DE PRIORITE, chacune avec un code/numéro unique. Les plus prioritaire doivent être bien décrites comme demandée. ATTENTION : si vous désirez décrire, voire même encoder les user story ailleurs dans un outil par exemple, il faut mettre ici le lien pour y accéder.]

[Pour les US persos : Indiquer le nom de l'étudiant responsable]


US 1 : Page d'Accueil -- attribution

  • En tant qu'utilisateur je souhaite avoir accès à une page de présentation du site afin d'en connaitre le rôle
Détails

Description : L'utilisateur non connecté, lorsqu'il arrive sur le site pourra voir une brève description du site ainsi que des photos affichées en "random".

Critères d'acceptations :

  • A remplir

US 2 : Navigation -- Victor

  • En tant qu'utilisateur non connecté je souhaite pouvoir naviguer sur le site afin d'accéder aux pages qui m'intéressent
Détails

Description : L'utilisateur peux cliquer sur le bouton "recherche" pour affiner le résultat des photos qui sont affichées. Il pourra voir les photos en rapport aux mots clés de sa recherche.

Critères d'acceptations :

  • A remplir

US 3 : Création de profil -- attribution

  • En tant qu’utilisateur non connecté, je souhaiterais me créer un profil personnel afin d’accéder au site web
Détails

Description : Un utilisateur non connecté pourra cliquer sur le bouton de connexion pour se créer un compte utilisateur afin de pouvoir interagir avec les autres utilisateurs et publier des photos. Le bouton de création de compte se trouve en haut à gauche du site et redirige vers la page de création de compte qui demandera le nom, prénom et adresse mail. Les autres informations pourront être ajoutées par la suite.

Critères d'acceptations :

  • Créer une page d’inscription
  • Le formulaire d’inscription reprends les informations d’inscription de base (mail + mdp)

US 4 : Connexion au profil -- attribution

  • En tant qu’utilisateur non connecté, je souhaiterais me connecter à mon profil utilisateur afin d’y accéder
Détails

Description : L'utilisateur non connecté (mais qui a déjà un compte de créé) peut cliquer sur le bouton "connexion" afin de se connecter à son compte. Il sera redirigé vers la page de connexion qui lui demandera son adresse mail ainsi que son mot de passe personnel. Si les informations qu'il a rentré sont bonnes, il sera alors connecté à son compte.

Critères d'acceptation :

  • Créer une page de connexion
  • Le formulaire de connexion reprends les champs de connexion de base (mail + mdp)

US 5 : Deconnexion du profil -- attribution

  • En tant qu’utilisateur connecté, je souhaiterais pouvoir me déconnecter de ma session afin de protéger mes données personnelles
Détails

Description : L'utilisateur connecté, aura la possibilité de quitter son compte en cliquant sur le bouton de déconnexion en haut à gauche. Une fois qu'il a cliqué sur le bouton, il sera redirigé sur la page d'accueil du site.


US 6 : Footer -- attribution

  • En tant qu’utilisateur non connecté, je souhaiterais pouvoir visualiser le footer du site web afin d’avoir accès au sitemap, au logo ainsi qu’à des informations légales concernant le site
Détails

Description : L'utilisateur pourra voir en bas de page du site les informations générales ainsi que le logo. Le footer se retrouvera sur toutes les pages, pour les utilisateurs non connectés et les utilisateurs connectés.

Critères d'acceptations :

  • A remplir

US 7 : Completion profil -- Julien

  • En tant qu’utilisateur connecté, je souhaiterais ajouter mes informations personnelles afin de compléter mon profil
Détails

Description :
Pour un utilisateur, l’étape qui suit l’inscription sera d’ajouter des informations à son profil. Certaines seront requise et d’autres facultative. Il sera plus avantageux pour les utilisateurs de compléter leur profil au maximum pour le rendre plus attrayant aux yeux de potentiel clients. Cette fonctionnalité sera accessible grace à un bouton qui sera situé sur la page du profil personnel et qui redirigera vers le formulaire illustré sur la maquette ci-dessous.

Les différentes informations qu’il sera possible d’ajouter au profil sont les suivantes :

Requis :

  • Nom + Prénom
  • Date de naissance

Facultatif :

  • Description personnelle
  • Sexe/genre
  • Localisation
  • Matériel utilisé/favori
  • Experience proféssionnel

Critères d'acceptation :

  • Bouton "complétion du profil" apparent sur la page profil de l'utilisateur
  • Tout les champs décrits ci-dessus peuvent être complété
  • Bouton "compléter mon profil" pour sauvegarder les informations entrés dans le formulaire
  • Message d'erreur en cas de nom complétions des champs requis
  • Les informations entrés sont bien afficher sur la page profil de l'utilisateur

Dépendances techniques :

Prérequis:

Avoir créer un compte utilisateur et y être connecté.

Endpoints API:

  • Récupérer l'identifiant du profil de l'utilisateur connecté : GET /user/getUserId
  • Mettre à jour les informations du profil de l'utilisateur connecté : PUT /user/updateUser

Table de la DB:

La base de données va être utilisée en mode écriture seulement dans un premier cas et en mode lecture-écriture dans un second cas:

  1. Lorsque qu'aucune information n'existe pour le compte utilisateur connecté, les donnés rentrés seront simplement écrites dans la base de données.
  2. Lorsque des informations ont déjà été entrées dans la base de données mais pas la totalité. L'utilisateur souhaite donc continuer la complétion de son profil. La base de données sera donc utilisée en lecture pour afficher les informations rentrées auparavant et ensuite en écriture pour ajouter les nouvelles informations entrées.

Librairies utilisées:

  • Component Text Field du framework Vuetify qui permet l'implémentation de tout les champs sur l'image ci-dessous.
  • Component 'date-picker' du framework Vuetify pour le champ d'entré de date de naissance.
  • Component 'button' du framework Vuetify pour créer des boutons de redirection ou de soumission.

Exemple de résultat attendu :

US7

Poid de l’US: ~8 heures


US 8 : Mettre en ligne des photos sur son profil personnel -- Maxence

  • En tant qu’utilisateur connecté, je souhaiterais mettre en ligne des photos afin de compléter mon profil
Détails

Description : L’utilisateur une fois inscrit pourra aller sur son profil et grâce à un bouton "mettre en ligne des photos" sur son profil personnel il pourra publier des photos qui seront ensuite visible sur son profil. Publié des photos permet aux autres utilisateurs connectés de voir quelles genre de photos l'utilisateur prend, et permet aussi à un utilisateur de mettre en avant son travail sur un espace qui lui est propre.

Les différentes informations qu’il sera possible d’ajouter au profil sont les suivantes :

Dépendances techniques :

Prérequis: Avoir créer un compte utilisateur et y être connecté.

Endpoints API:

  • Récupérer la photo envoyé par le bouton "mettre en ligne des photos"
  • Mettre à jour le profil de l'utilisateur afin d'afficher la photo.

Table de la DB:

La base de données va être utilisée en mode écriture seulement dans un premier cas et en mode lecture-écriture dans un second cas:

  1. La photo choisie sera simplement écrites dans la base de données.
  2. Les photos de l'utilisateur dans la DB seront ensuite récupérées(lecture) et affichées sur son profil(écriture).

Critères d’acceptations:

  • Un bouton “Mettre en ligne des photos” sera disponible sur le profil.
  • Les photos sont visibles sur le profil personnel de l’utilisateur.
  • Avant de poster une photo sur mon profil personnel, une demande confirmant l’action est requise.

Poid de l’US: ~10 heures

  • Bouton pour upload

Capture d’écran 2023-03-08 173301

  • POP UP Demande de l'image

Capture d’écran 2023-03-08 173337


US 9 : Suppression de photo personnelle -- attribution

  • En tant qu’utilisateur connecté, j’aimerais pouvoir supprimer des photos sur mon profil personnel
Détails

Description : L'utilisateur connecté, lorsqu'il clique sur une photo à la possibilité de la supprimer du site internet. Il le fera via un bouton "supprimer" qui se trouve à coté de la photo.

Critères d'acceptation :

  • Bouton "supprimer" cliquable
  • Lorsque l'utilisateur clique sur le bouton la photo est supprimée de l'affichage sur le site ainsi que dans la base de donnée
  • Le bouton n'est pas visible pour un utilisateur qui n'est pas propriétaire de la photo
  • Le bouton n'est pas visible pour un utilisateur non connecté
  • Un message de confirmation apparait lorsque l'utilisateur clique sur le bouton

Dépendances techniques :

Prérequis : Avoir son compte utilisateur et y être connecté, ainsi qu'avoir déjà posté une photo.
La base de données doit être opérationnelle.

Tables de la base de données utilisées : La base de données va être d'abord lue, l'utilisateur connecté doit accéder à la photo qu'il veut supprimer, la table Pictures va être lue via la clé étrangère id_User et l'id de la photo. Ensuite pour la suppression, il va y avoir une écriture avec la suppression de la photo et de toutes les données qui lui sont liées, la lecture se fera sur la table Pictures, Comments, Likes et Categories_Pictures.

Endpoints API :

  • Afficher la photo a supprimer : GET /Pictures/id
  • Suppression de la photo : DELETE /Pictures/id

Maquette :

image


US 10 : Création galerie photo -- Victor

  • En tant qu’utilisateur connecté, je souhaiterais créer une galerie photo afin de regrouper des photos de mon profil liées à un thème précis
Détails

Description :
Une fois que l’utilisateur a mis en ligne ses photos personnelles, il pourra avoir la possibilité de répertorier celles-ci dans différentes galeries. Ces galeries seront affichées sur la page profil de l’utilisateur, nommées au travers d'un titre et d'une image.
Pour créer une galerie photo, un bouton ‘+’ devra être présent au-dessus des photos utilisateurs, au même endroit où l’aperçu des différentes galeries de l’utilisateur sera présent.

Critères d’acceptations:

  • Un bouton ‘+’ est présent au dessus des photos utilisateurs sur la page profil
  • Lors du clic d’ajout, l’utilisateur peut encoder le nom de la galerie et un tag décrivant le sujet de la galerie
  • Une fois les informations ajoutées, les photos du compte utilisateur connecté apparaissent afin d'être sélectionnée ou non
  • Un bouton 'OK' est présent afin de clôturer la procédure d'ajout
  • La galerie est désormais présente et affichée sur le profil utilisateur

Dépendances API Poid de l’US: ~10 heures


US 11 : Suivi de profil -- attribution

  • En tant qu’utilisateur connecté, je souhaiterais suivre un profil utilisateur afin d’avoir accès au contenu de ce profil
Détails

Description :


US 12 : Aperçu du site -- attribution

  • En tant qu’utilisateur non connecté, je souhaite voir les photos des personnes suivies afin de me forger un avis
Détails

Description :


US 13 : Recherche d'utilisateur -- Oscar

  • En tant qu’utilisateur non connecté, je souhaite pouvoir rechercher un utilisateur afin d’avoir des infos sur lui
Détails

Description : L'utilisateur non connecté clique sur la barre de recherche pour chercher un utilisateur ayant un compte sur le site. La barre se trouve au centre de la barre de navigation et la recherche se fait en fonction du nom et du prénom de l'utilisateur recherché.

Critères d'acceptation :

  • La barre de recherche est cliquable et se trouve au centre de la barre de recherche.
  • La recherche est automatique et évolutive, c'est à dire que les correspondances possibles s'affichent automatiquement lorsque l'utilisateur tape une lettre ou un mot dans la barre de recherche. Et inversement s'il en enlève.
  • La recherche donne bien tous les utilisateurs correspondants.
  • Le nom et prénom des utilisateurs affichés sont cliquables et redirigent vers la page de profil.

Dépendances techniques :

Prérequis :
La base de données doit être opérationnelle et la barre de navigation doit exister.

Tables de la base de données utilisées : La base de données va être lue pour récupérer les infos des utilisateurs recherchés, leur id, nom et prénom.

Endpoints API :

  • Rechercher un utilisateur : GET /search/:searchParam
  • Afficher la page utilisateur : GET /:userId

Maquette :

  • Barre de recherche lorsque le focus n'est pas dessus :

image

  • Barre de recherche quand le focus est dessus et que la lettre "J" à été écrite :

image

Poids de la US :

~8h


US 14 : Recherche d'utilisateur à proximité -- attribution

  • En tant qu’utilisateur non connecté, je souhaite pouvoir rechercher tous les utilisateurs qui proposent des services aux alentours d’un lieu donné afin d’avoir les services proches de moi ou de mon besoin
Détails

Description :


US 15 : Recherches de photos avec filtres -- attribution

  • En tant qu’utilisateur, je souhaite pouvoir rechercher des photos en fonction de filtres choisis afin de ne voir que les photos qui m’intéressent
Détails

Description :


US 16 : Contact entre utilisateurs -- attribution

  • En tant qu’utilisateur connecté, je souhaite pouvoir contacter un autre utilisateur connecté afin de lui poser des questions d’ordre pratiques et commerciales
Détails

Description :


US 17 : Modération de publication -- attribution

  • En tant qu’administrateur, je souhaite que les photos qui sont postées sur le site soient vérifiées avant la mise en ligne afin que celles-ci respectent bien les conditions d’utilisation du site
Détails

Description :


US 18 : Vérification de signalement -- attribution

  • En tant qu’administrateur, je souhaite recevoir une notification des photos signalées afin de vérifier la photo
Détails

Description :


US 19 : Mise à jour du profil utilisateur -- attribution

  • En tant qu'utilisateur connecté je souhaite modifier les informations de mon profil afin de mettre à jour mes coordonnées, tarifs ou autre
Détails

Description :


[Pour rappel :

  • La page "Analyse des besoins" du wiki reprend la liste des User Stories, sous forme "en tant que …, je souhaite… afin de…
  • Chaque titre d'US est associée à un lien vers sa description complète (sur le wiki ou le gestionnaire de tâches)
  • Le nom de l'auteur de l'US est clairement indiqué dans le backlog
  • Les US sont estimées en terme de valeur pour le client.
  • Les US sont numérotées et prioritisées dans le backlog. Il faut pouvoir voir toutes les US dans une liste ordonnées.
  • Les US contienne un titre de forme : "en tant que …"
  • Un nombre significatif d'US parmi les plus prioritaires possèdent une description complète.
  • Une US analysée comporte : un nom correct, une description textuelle claire et complète accompagnée de maquettes, les critères d'acceptation ( ainsi - qu'une découpe en tâche technique avant de l'implémenter).
  • L'apparence de l'interface utilisateur de la US est précisée : emplacement/navigation, layout, maquettes, …
  • Les dépendances techniques de la US sont précisées : prérequis, endpoints API, tables de la DB, librairies utilisées, …
  • Les US sont estimées en terme de complexité (par exemple, durée estimée en heure)
  • Les US sont bien découpées. (Une US devrait porter sur un ajout fonctionnel utile au client. Idéalement une US devrait pouvoir être implémentée en une journée.) ]
⚠️ **GitHub.com Fallback** ⚠️