ECOM RICM5 Groupe5 2017
ECOM RICM5 Groupe 5 - Mes transports
Résumé du projet
Equipe
Membre | Rôles |
---|---|
Bonhoure Gilles | Scrum master / Développeur |
FERNANDES DE ALMEIDA Héloïse | Chef de projet |
MARCHAND Charles | Développeur |
MOREAU Gwenaël | Communication avec le client / Développeur |
VIAL-GRELIER Aymeric | Ingénieur réseaux / Lead développeur |
ZEGAOUI Taquyeddine (arrivé début octobre) | Développeur |
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
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 : 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 : 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 : 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 : 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 : compte rendu
Tâches effectuées
Problème rencontrés
Rétrospective
Prévision
Sprint 7 : 13/12/17 > 19/12/17
Réunion du 5/12 : compte rendu
Tâches effectuées
Problème rencontrés
Rétrospective
Prévision
Livrables
- Livrable 2 : File:DCS groupe5 2017 2018.pdf
- Livrable 3 : File:AnalyseExistant groupe5 2017 2018.pdf
- Livrable 4 : Maquettes
- Livrable 10 : Organisation Git
Audits
- Audit 1 : File:Audit1 groupe5 2017 2018.pdf
- Audit 2 : File:Audit2 groupe5 2017 2018.pdf
Conception
Diagramme de cas d'utilisation
Diagrammes de séquences et cas d'utilisation