ECOM RICM5 Groupe5 2017

= ECOM RICM5 Groupe 5 - Mes transports =

Journal
Étant donné que les informations à remplir concernant le journal n'étaient pas très claires pour l'ensemble des groupes, la réalisation du journal n'a été réalisée qu'à partir de la moitié du sprint 4. Il est possible de retrouver l'intégralité des réalisations de l'équipe dans la section SCRUM

Lien vers le Journal

Livrables

 * Livrable 2 : [[Media:DCS_groupe5_2017_2018.pdf‎|DCS]]
 * Livrable 3 : [[Media:AnalyseExistant_groupe5_2017_2018.pdf‎|Analyse de l'existant]]
 * Livrable 4 : Maquettes
 * Livrable 5 : [[Media:ECOM2017-GROUPE5-SRS-MesTransports.pdf|SRS]]
 * Livrable 6 : Diagrammes UML
 * Livrable 7 : Modèle de tâches
 * Livrable 8 : SCRUM
 * Livrable 9 : Journal
 * Livrable 10 : Organisation Git
 * Livrable 11 : Site web
 * Livrable 12 : ECOM2017-GROUPE5-Evaluation_IHM.zip
 * Livrable 13 : [[Media:ECOM2017-GROUPE5-Evaluation_qualit_du_projet2.pdf|Evaluation qualité du code]]
 * Livrable 14 : [[Media:ECOM2017-GROUPE5-Cout_du_projet.pdf|Evaluation cout du projet]]
 * Livrable 15 : Diapos présentation de conception
 * Livrable 16 : Diapos présentation finale
 * Livrable 17 : [[Media:ECOM_Eval_Systeme_groupe5_2017-2018.pdf|Auto evaluation]]
 * Livrable 18 : Diapos présentation client

Audits

 * Audit 1 : Audit1_groupe5_2017_2018.pdf
 * Audit 2 : Audit2_groupe5_2017_2018.pdf
 * Présentation finale : ECOM_Presentation_finale_groupe5_2017_2018.pdf

SCRUM
Afin de réaliser le projet dans les meilleures conditions possibles, il était nécessaire de mettre en place une méthode de travail. Il nous était proposé d'utiliser la méthode SCRUM afin d'organiser le groupe de façon à obtenir des résultats fonctionnels rapidement. Nous avons fait le choix de définir un SCRUM Master unique : Gilles Bonhoure, ce qui assurera la bonne pratique de la méthodologie, et de faire en sorte que l'équipe avance ensemble vers un même objectif. Nous avons également fait le choix de planifier des sprints de deux semaines. Cela nous laissera le temps de mettre en place de nouvelles fonctionnalités à chaque étape. Les "Daily Scrum Meeting" auront lieu minimum chaque mardi, afin de rebondir au milieu de chaque sprint en cas de problème.

Sprint 1 : 19/09/17 > 02/10/17
Lors de ce premier sprint, l'équipe a découvert le projet et nous avons déterminé les compétences de chacun.

Tâches effectuées


 * Découverte du sujet
 * Attribution des rôles
 * Documentation sommaire concernant les outils à utiliser
 * Réalisation de l'analyse du besoin client basé sur des scénarios
 * diagramme de contexte
 * diagramme cas d'utilisations
 * arbre de tâches

Rétrospective


 * Beaucoup de technologies restent inconnues au groupe, nous devons donc faire des recherche sur l'ensemble de celles-ci
 * Des points flous concernant l'application sont à préciser. Nous allons contacter le client pour plus d'informations concernant les réservations.

Prévisions


 * Préparation de l'Audit 1
 * Travail sur la partie conception / architecture de l'application
 * Commencer à tester les différentes technologies

Sprint 2 : 03/10/17 > 16/10/17
Nous avons dédié ce deuxième sprint à la mise en place des outils de gestion nécessaires au projet, l'organisation du groupe, et les dossiers de conception. Nous avions effectivement une première réunion d'audit avec les clients afin d'y présenter nos travaux de conception.

Tâches effectuées


 * Définition de la première version du product backlog
 * Réalisation du Dossier de Conception Système
 * Réalisation de l'Analyse des besoins
 * Réalisation des modèles de tâches
 * Formation des sous groupes de développement
 * Initialisation de l'organisation Github
 * Lectures et formations sur divers outils
 * Docker
 * Wildfly
 * Java EE
 * Génération d'une première version du projet (à partir d'un projet existant)
 * Réalisation d'un diagramme de classes
 * Réalisation d'un schéma UML de base de données
 * Poker planning pour définir l'estimation et la complexité du product backlog

Rétrospective

Nous avons enfin réalisé notre product backlog et son estimation. Nous avons donc pu commencer à prévoir le déroulement de nos futurs sprints pour une meilleure organisation. En revanche, beaucoup de technologies restent encore à tester, nous n'avons pas réussi à mettre en place le serveur Wildfly sur nos machines. Le projet sur lequel nous nous sommes basés fonctionne, mais nous devons essayer de mettre en place nos propres fonctionnalités. La conception étant définie, il nous faut désormais mettre en place la base de données et faire fonctionner l'application pour effectuer nos premiers tests.

Prévisions


 * Création de diagrammes de séquence suivant les scénarios
 * Réaliser la base de données pour des tests locaux (génération du fichier sql)
 * Génération des Entity Beans à partir de la base de données
 * Réalisation de la Session Bean utilisateur avec un minimum de fonctionnalités : recherche de véhicule en priorité
 * Mise en place de la partie "MOM"
 * Réalisation de la première partie de l'API faisant le lien avec la partie utilisateur

Sprint 3 : 17/10/17 > 30/10/17
À partir de ce sprint, nous avions mis en place un réel planning, ce qui nous a permis de réaliser de réels sprint backlogs et sprints plannings, basés sur nos sprints initialement prévus et en adaptant nos prévisions. Les sprint planning n'étaient cependant pas encore bien maîtrisés avant la fin du sprint 4, ce qui fait que l'organisation était encore très bancale.

Tâches effectuées

Durant ce sprint, nous n'avons pas réussi à beaucoup avancer au niveau de la programmation de l'application. Seule la partie "données" et conception ont pu évoluer correctement :
 * Réalisation des diagrammes de séquence
 * Génération du SQL de la base de données entités
 * Génération de la base de données transactions
 * Génération des entités et JPA
 * Première mise en place de l'API Swagger

Rétrospective

La Session Bean n'a pas pu être réalisée de façon correcte. Nous n'arrivions pas à mettre en place ce que nous souhaitions. Nous avons rencontré beaucoup de problèmes de compréhension dans le fonctionnement de JEE et avons donc reporté les tâches non effectuées sur le Sprint 4.

Prévisions


 * Report de l'initialisation de la Session Bean
 * Mise en place de "MOM".
 * Prévoir la réalisation des livrables
 * Audit 2
 * Diagrammes UML
 * Maquette / Charte graphique
 * Réalisation de l'API Swagger côté client

Sprint 4 : 31/11/17 > 13/11/17
Lors de la première semaine de ce sprint, nous avons fait une réunion car beaucoup de choses ne fonctionnaient pas comme elle l'auraient dû. Cette réunion a permis de recentrer le groupe sur l'objectif du projet. Nos réunions hebdomadaires feront désormais l'objet de compte-rendu stricts reportés ici présent. Chaque réunion donnera lieu à une mise à jour des tâches en cours, réalisées, ou restantes. Chaque membre du groupe pourra y faire remonter les soucis rencontrés, le plus gros problème étant l'organisation.

-

Réunion du 10/11 : [[Media:ECOM-2017_compteRendueReunion_groupe5_10-11.pdf|compte rendu]]
Tâches effectuées


 * Début de programmation sur Session Bean sans succès
 * Réalisation des diagrammes UML
 * Définition des maquettes et de la charte graphique
 * Apprentissage du fonctionnement de MOM (pas de tests)
 * Mise en place d'HAProxy sur machine dédiée

Rétrospective

Comme dit précédemment, l'organisation du groupe était à revoir. Nous partons désormais sur de nouvelles bases qui semble prometteuses. Nous avons cependant soulevés quelques problèmes de configuration machine pour plusieurs personnes.

Prévisions

Toute l'équipe va se concentrer sur le maintiens actif de l'organisation générale du projet. En plus de cela, les tâches suivantes sont prévues d'ici la fin du sprint :
 * Finir les session bean utilisateur
 * Mise en place d'un prototype MOM externe au projet (tests)
 * Mettre à disposition l'API Swagger sur Git
 * Mettre au propre les sprints (anciennement "journaux") sur le Wiki
 * Regarder les templates angularjs/html
 * Régler les soucis de configuration

-

Sprint 5 : 14/11/17 > 27/11/17
Le but de ce sprint était la mise en place d'une bonne partie du front-end afin de pouvoir interagir avec l'API, et de commencer à déployer le projet. Nous avions déjà un peu de retard sur le planning à ce stade, c'est pourquoi nous avons axé nos efforts sur une seule partie de toutes les tâches à accomplir, principalement celles en retard.

Réunion du 14/11 : [[Media:ECOM RICM5 Grp5 CptReunion 14-11.pdf|compte rendu]]
Tâches effectuées


 * Mise en place d'une première page html respectant les maquettes
 * Développement des session beans
 * Utilisateur
 * Véhicules
 * Agences
 * Premier prototypes du mailer
 * Mise en place de l'interface swagger pour l'API

Problème rencontrés

Certaines personnes n'arrivent pas à faire fonctionner correctement le projet mais ont tout de même réussi à développer des parties du projet ou à tester de futures fonctionnalités. Nous nous sommes demandé si nous allions implémenter toutes les méthodes de paiement. Nous avons levé la question de l'appartenance de plusieurs agences "mère" à un/plusieurs utilisateur(s).

Rétrospective

Nous allons faire en sorte que toutes les personnes du groupes aient une version fonctionnelle de l'application. Il a d'abord été décidé de ne gérer que la version de paiement "différé". Pour le moment un utilisateur ne possède qu'une seule agence mère, la base de données n'a donc pas été modifiée. Le projet évolue à une bonne vitesse, nous devons continuer sur cette voie.

Prévision


 * Définition des URL d'accès à l'API
 * Remplir les bases de données pour effectuer de futurs tests
 * Création d'une "base de données" de mails en attente
 * Travailler sur la session bean / API
 * Mettre en place l'accès utilisateur sur la partie front-end
 * Evaluer les maquettes

Réunion du 20/11 : [[Media:ECOM RICM5 Grp5 CptReunion 20-11.pdf|compte rendu]]
Tâches effectuées


 * Les versions de l'application de tous les membres de l'équipe fonctionnent correctement
 * La documentation de l'API a été rédigée
 * Un utilisateur peur s'authentifier
 * Il est possible d'enregistrer une agence
 * Un serveur a été mis en place pour accueillir l'application
 * Avancement sur les méthodes de l'API
 * Le back-end gère l'envoie d'e-mails

Problème rencontrés

Questions soulevées pendant la réunion :
 * Comment inscrire une agence ?
 * Quels genre de graphiques utiliser pour le dashboard des agences ?

Rétrospective


 * Pour l'inscription d'une agence, un utilisateur doit demander sa création à un administrateur via un formulaire spécifique
 * Plusieurs membres du groupe ayant déjà utilisé la librairie [Plot.ly] nous avons décidé de l'utiliser pour les graphs des dashboards
 * La date de rendu approche, nous avons donc décidé de ne pas mettre en place la partie Taxis, qui était facultative

Prévision


 * Continuer l'API
 * Mise en place du déploiement automatique de l'application
 * Inscription de l'utilisateur, mise à jour du compte
 * Page de recherche, ajout et suppression du panier
 * Évaluation des IHM
 * Travail sur le front-end des agences

Sprint 6 : 28/11/17 > 11/12/17
Ce sprint est prévu pour être le dernier sprint de développement, c'est pourquoi nous allons concentrer nos efforts sur les parties les plus importantes de l'application.

Réunion du 28/11 : [[Media:ECOM RICM5 Grp5 CptReunion 28-11.pdf|compte rendu]]
Tâches effectuées


 * Formulaire d'inscription (interface uniquement)
 * Déploiement de l'application
 * Intégration continue configurée
 * Début de l'installation de Grafana
 * Mise à jour de Swagger
 * Travail sur les agences
 * Mise en place du cart dans le back-end

Problème rencontrés

Impossible de communiquer en POST avec l'API.

Rétrospective


 * Il faut mettre en place un système de réservation qui "bloque" un véhicule, mais qui reste raisonnable dans le sens où un utilisateur ne doit pas être en mesure d'empêcher la réservation aux autres utilisateurs en gardant son panier trop longtemps.
 * Il va falloir revoir une grosse partie de l'API, qui pose problème au niveau des posts.
 * Nous avons identifié que l'API ne respectait pas le principe de REST : POST, GET, PUT, et DELETE n'étaient pas utilisés de la bonne façon

Prévision


 * Mettre à jour la base de données
 * Faire un choix pour l'implémentation des carts
 * Définition des types de réponse du back-end
 * Refonte de l'API
 * Mise en place du cart côté back-end
 * Evaluation des maquettes
 * Débuter le SRS

Réunion du 5/12 : [[Media:ECOM2017-05-12-ECOM-RICM5-Groupe5-mesTransports.pdf‎|compte rendu]]
Tâches effectuées


 * Authentification des utilisateurs (front)
 * Début d'interfaces véhicule
 * Refactoring du backend
 * Mise en place de nombreuses solutions de déploiement
 * Gestion des agences

Problème rencontrés


 * Quelques bugs à propos du routing des pages

Rétrospective

Nous avons depuis un moment remarqué que le groupe était en retard par rapport au planning, mais nous réussissons à garder un retard constant. Nous avions prévu un dernier sprint pour finir les tâches restantes.

Prévision


 * Correction et mise en place de nouvelles interfaces utilisateur
 * Evaluation de l'IHM
 * Affichage de graphiques dans l'interface agence

Réunion du 5/12 : [[Media:ECOM2017-ECOM-RICM5-Groupe5-mesTransports.pdf‎|compte rendu]]
Ce sprint final annonce la fin du projet, avec encore beaucoup de tâches à accomplir, et surtout qu'il faut peaufiner les détails pour la présentation. Nous avons donc décidé de concentrer nos efforts sur le remplissage de la base, l'amélioration de l'affichage, la vérification du bon fonctionnement des diverses fonctionnalités.

Tâches effectuées


 * Affichages des interfaces client et agence
 * Evaluation de l'IHM
 * Travail sur un début d'interface administrateur
 * Travail sur l'API

Problème rencontrés


 * Difficultés sur certaines parties de l'API (PUT/DELETE)
 * Mise en place du panier mix Cookies/BDD complexe

Rétrospective

Nous avons décidé de ne pas mettre l'accent sur la partie administrateur qui prenait du temps et qui n'était pas vraiment valorisante pour le projet final. De même pour la partie agence de taxis que nous n'aurons pas le temps de prendre en compte. Certains fonctionnalités non demandées par le client tel que la désactivation de compte client ne seront pas couvertes.

Il a été décidé que la gestion du panier se ferait uniquement par cookies pour simplifier le développement de celui-ci.

Prévision


 * Préparation de la soutenance finale
 * Réalisation des documents d'architecture et évaluations
 * Finition de l'interface client et de la gestion du panier

Maquettes


[[Media:ECOM2017-RICM5-Test_utilisateur.pdf| Tests utilisateurs]]