Outils pour utilisateurs

Outils du site


id_symfo_conception_us

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
id_symfo_conception_us [2024/11/27 14:29] – [Base de données] admwikiid_symfo_conception_us [2024/11/27 16:47] (Version actuelle) – [Préalables sur l'application symfony] admwiki
Ligne 1: Ligne 1:
-====== Démarche de conception d'une User Story d'une application symfony ====== +===== Démarche de conception d'une User Story  ===== 
-==== Un exemple avec l'application Equida : lister les chevaux d'une vente ====+=== Un exemple avec l'application Equida : lister les chevaux d'une vente ===
  
  
-===== Contexte =====+==== Contexte ====
  
 L’application Equida est une application permettant de gérer les ventes aux enchères des chevaux de courses. La société Equida organise environ dix ventes aux enchères par an sur deux sites : L’application Equida est une application permettant de gérer les ventes aux enchères des chevaux de courses. La société Equida organise environ dix ventes aux enchères par an sur deux sites :
Ligne 23: Ligne 23:
 La configuration à la base de données est réalisée dans le fichier .env La configuration à la base de données est réalisée dans le fichier .env
  
-===== Expression du besoin =====+==== Expression du besoin ====
  
 Une nouvelle fonctionnalité (user story) doit être ajoutée à l’application Equida. Il faut ajouter la possibilité à l’utilisateur de l’application de consulter la liste les chevaux proposés lors d’une vente avec,  pour chaque cheval, le prix de la mise de départ, les informations du vendeur. Une nouvelle fonctionnalité (user story) doit être ajoutée à l’application Equida. Il faut ajouter la possibilité à l’utilisateur de l’application de consulter la liste les chevaux proposés lors d’une vente avec,  pour chaque cheval, le prix de la mise de départ, les informations du vendeur.
 Si un cheval n’a pas été vendu, il pourra être remis aux enchères lors d’une prochaine vente. C’est la notion de Lot (précisé dans le cahier des charges). Si un cheval n’a pas été vendu, il pourra être remis aux enchères lors d’une prochaine vente. C’est la notion de Lot (précisé dans le cahier des charges).
  
-===== Modélisation / Diagramme de classes =====+==== Modélisation / Diagramme de classes ====
  
 Le diagramme de classe existe déjà (classes en rose). Le diagramme de classe existe déjà (classes en rose).
 Pour répondre au besoin exprimé, il faut le faire évoluer comme ci-dessous : classes en jaune. Pour répondre au besoin exprimé, il faut le faire évoluer comme ci-dessous : classes en jaune.
  
-===== Wireframes ===== +{{ :symfo_diagclasses_equida.jpg?400 |}}
-On partira de la page existante « lister les ventes » et on ajoutera sur chaque vente, un lien qui affichera une page reprenant les informations de la vente et listant les chevaux sélectionnés pour la vente sur laquelle on aura cliquée+
  
 +==== Wireframes et navigation ====
 +On partira de la page existante « lister les ventes » et on ajoutera sur chaque vente, un lien qui affichera une page reprenant les informations de la vente et listant les chevaux sélectionnés pour la vente sur laquelle on aura cliquée. 
  
-===== Préalables sur l'application symfony =====+{{ :symfo_navigation.jpg?600 |}} 
 +==== Préalables sur l'application symfony : contrôle de version ====
  
 Cette nouvelle fonctionnalité sera développée en local à partir de la dernière version de l’application publiée sur gitHub.  Cette nouvelle fonctionnalité sera développée en local à partir de la dernière version de l’application publiée sur gitHub. 
Ligne 43: Ligne 45:
 A chaque nouvelle unité de code ajoutée ou modifiée, un commit sera réalisé.  A chaque nouvelle unité de code ajoutée ou modifiée, un commit sera réalisé. 
  
-===== Couche Model ===== +==== Couche Model ==== 
-  * l’entity Race dont nous aurons besoin existe déjà +  * l’entity TypeCheval dont nous aurons besoin existe déjà 
-  * création de l’entity Lot + relation ManyToOne vers Vente+  * création de l’entity Lot + relation ManyToOne (MTO) vers Vente
   * création de l’entity Vendeur   * création de l’entity Vendeur
-  * Création de l’entity Cheval + relation MTO vers Vendeur + relation MTO vers Race+  * Création de l’entity Cheval + relation MTO vers Vendeur + relation MTO vers TypeCheval 
   * Reprendre l’entity Lot pour y ajouter la relation MTO vers Cheval Commit   * Reprendre l’entity Lot pour y ajouter la relation MTO vers Cheval Commit
 L’id de chaque entity sera créé automatiquement ainsi que tous les getters/setters des propriétés. L’id de chaque entity sera créé automatiquement ainsi que tous les getters/setters des propriétés.
Ligne 54: Ligne 56:
 <code> php bin/console make:entity</code> <code> php bin/console make:entity</code>
  
-===== Base de données =====+==== Base de données ====
 Il faut faire évoluer la structure de la base de données en fonction du nouveau Model. Il faut faire évoluer la structure de la base de données en fonction du nouveau Model.
  
Ligne 62: Ligne 64:
   * Ajouter ensuite des données pertinentes et en nombre suffisant dans les nouvelles tables : donc ajouter des chevaux avez  leur vendeur et leur type, ajouter des lots avec le cheval et la vente liés.   * Ajouter ensuite des données pertinentes et en nombre suffisant dans les nouvelles tables : donc ajouter des chevaux avez  leur vendeur et leur type, ajouter des lots avec le cheval et la vente liés.
  
-===== Couche Controller =====+==== Couche Controller ====
   * le contrôleur VenteControlleur existe déjà. Il faut y ajouter la méthode permettant de consulter une vente     * le contrôleur VenteControlleur existe déjà. Il faut y ajouter la méthode permettant de consulter une vente  
  
Ligne 71: Ligne 73:
         * type de retour : Response         * type de retour : Response
  
-  * adapter la route associée //(dans fichier .env ou en annotation des méthodes dans le contrôleur)//:+  * adapter la route associée //(dans fichier .env ou en annotation de la méthode dans le contrôleur)//:
         * nom de la route : app_vente_show         * nom de la route : app_vente_show
         * url : /vente/show/{idVente}         * url : /vente/show/{idVente}
Ligne 77: Ligne 79:
    
   * Corps de la méthode    * Corps de la méthode 
-        * récupérer dans un objet vente, les données d’une vente avec la méthode find du repository prenant en paramètre l’idVente +        * récupérer dans une variable vente, l'objet vente avec la méthode find du repository prenant en paramètre l’idVente 
-        * renvoyer vers la vue qui sera dans le dossier templates/vente et qui sera nommée show.html.twig en fournissant l'objet vente récupéré ci-dessus.+        * renvoyer vers la vue qui sera dans le dossier templates/vente et qui sera nommée show.html.twig en fournissant en paramètre la variable vente ci-dessus.
  
-===== Couche View =====+==== Couche View ====
   * Reprendre la vue permettant de lister les ventes (template/vente/list.html.twig) pour ajouter, sur chaque vente, un lien vers la route app_vente_show, en passant le paramètre de l’id de vente   * Reprendre la vue permettant de lister les ventes (template/vente/list.html.twig) pour ajouter, sur chaque vente, un lien vers la route app_vente_show, en passant le paramètre de l’id de vente
   * Dans le dossier template/vente, créer la vue show.html.twig    * Dans le dossier template/vente, créer la vue show.html.twig 
         * afficher les informations basiques d’une vente en récupérant la vente passée en paramètre dans le contrôleur (vente/nom, vente.CategVente.libelle, vente.dateDebut)         * afficher les informations basiques d’une vente en récupérant la vente passée en paramètre dans le contrôleur (vente/nom, vente.CategVente.libelle, vente.dateDebut)
         * créer un tableau des chevaux qui sera construit en faisant une boucle sur les lots d’une vente ({% for leLot in vente.lots %} (affichage des informations d’un cheval avec leLot.cheval.nom, leLot.cheval.vendeur.nom ,etc...)         * créer un tableau des chevaux qui sera construit en faisant une boucle sur les lots d’une vente ({% for leLot in vente.lots %} (affichage des informations d’un cheval avec leLot.cheval.nom, leLot.cheval.vendeur.nom ,etc...)
-        * implémenter le design commun aux pages+        * implémenter le design commun aux pages de l'application 
 + 
 + 
 +==== Tests ==== 
 + 
 +Avec le navigateur web : 
 + 
 +  * ouvrir la page http://localhost/equida/public/vente/list  et vérifier la présence des liens sur chaque vente 
 +  * cliquer sur une vente (exemple la vente ayant l'id 3) 
 +  * la page http://localhost/equida/public/vente/show/ doit faire apparaitre la vue attendue. 
 + 
 +==== Publication ==== 
 + 
 +Les commits ont été réalisés à chaque unité de code ajoutée et/ou modifiée. 
 + 
 +Une fois la user story testée et validée :  
 + 
 +  * publier le code de la branche vers github 
 +  * créer une pull Request  
 +  * faire tester la US et réviser le code par une autre personne de l'équipe 
 +  * si ok, merge la branche avec la main 
 +  * prévenir les autres membres de l'équipe de la mise à jour du main 
 +  * livrer en environnement de recette 
 +  * faire tester par le product owner 
 + 
 + 
  
id_symfo_conception_us.1732717776.txt.gz · Dernière modification : de admwiki