ECOM RICM5 Groupe6 2017 - Fiche de Suivi

<<< RETOUR

{|class="wikitable alternance" |+ Fiche de suivi |- | !scope="col"| !scope="col"| Alicia AUBERTIN !scope="col"| Aymeric BROCHIER !scope="col"| Ahmed NASSIK !scope="col"| Boris ODIEVRE !scope="col"| Vincent TURRIN |-

| colspan="7" style="text-align: center; background-color:green;"| Préparation de sprint |- | rowspan="2" | Mardi 26/09/17 | Taches effectuées | style="width: 275px;" | | style="width: 275px;" | | style="width: 275px;" | | style="width: 275px;" | | |- | Problèmes rencontrés |
 * Analyse des scénarios et extraction d'arbres des tâches
 * Autoformation sur Angular 4
 * Analyse de scénarios et extraction d'arbre des tâches
 * Installation docker sur ma machine perso
 * Test JHipster dans un container docker
 * Autoformation sur Angular 4
 * Réalisation d'arbre des tâches à partir des scénarios
 * Installation Jhipster
 * Formation sur Jhipster
 * Génération d'un premier site à l'aide de Jhipster
 * Réalisation d'arbre des tâches à partir des scénarios
 * Installation Jhipster
 * Création fiche de suivis WikiAir
 * Première prise de contact avec le client
 * Analyse scénarios + arbre des tâches
 * Formation utilisation/compréhension JHipster : Gateway/JHipster Register/Microservices
 * Formation utilisation Docker

| |
 * Génération JHipster : connection admin/user

|

|

|- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 0 |- | rowspan="2" | Mardi 03/10/17 | Taches effectuées | | | | | |- | Problèmes rencontrés |
 * Analyse des scénarios et extraction d'arbres des tâches
 * Réflexion sur l'architecture Système et création du SAS
 * Rédaction du DCS
 * Analyse de scénarios et extraction d'arbre des tâches
 * Diagramme de contexte V1
 * Reflexion en groupe sur la séparation en micro-services
 * Réalisation d'arbre des tâches à partir des scénarios
 * Réalisation d'un product backlog
 * Réalisation d'arbre des tâches à partir des scénarios
 * Etude des micros service en liens avec notre projet
 * Analyse scénarios + arbre des tâches
 * Conception du site : définition des microservices -> SAS

|

|

|

| Difficultés à définir l'architecture en microservices : manque d'expérience. Commentaire DD : lire http://microservices.io/patterns/microservices.html et démarrer incrémentalement par 1 micro-service. Vous bâtirez votre cathédrale plus tard. |- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 1 |- | rowspan="4" | Mardi 10/10/17 | rowspan="2" | Tâches à réaliser | colspan="6" style="text-align: center; background-color:lightgray;"| Présenter l'audit 1 - Besoins |- | | | | | |- | Taches effectuées | | | |
 * Plannification des futurs sprints
 * Formation Angular
 * Formation Leaflet (Commentaire DD : voir ce lien)
 * Formation SpringBoot
 * V1 back-end
 * Mise en place icescrum
 * Formation SpringBoot
 * V1 back-end
 * Autoformation Angular 4
 * Début de planification des sprints
 * Formation Leaflet
 * Formation SpringBoot (Beans, cycle de vie, scope...)
 * Assistance a la mise en place de la v1
 * premier contact avec le client
 * Implémentation de toutes les users story dans Iscrum
 * installation docker
 * début formation angular

| |- | Problèmes rencontrés |
 * Mise en place de la V1 du site avec : registre, gateway, un seul microservice, front-end non modifié. Entités à terminer.
 * Projet opérationnel sur Github après modification des .gitignore.

|

|

Problème de mise en place du compte AWS (Carte bancaire)

|

|

|- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 2 |- |rowspan="3" | Mardi 17/10/17 | Tâches à réaliser | | | | | |-|- | Taches effectuées | |
 * Front-end pour la V1
 * Front-end pour la V1
 * Hébergement de l'application
 * Front-end pour la V1
 * Hébergement de l'application
 * Autoformation Angular 4
 * Fin de planification des sprints
 * Formation Leaflet
 * lien entre Angular et Leaflet

| |
 * Formation Swagger.
 * Réalisation d'un début d'API pour un microservice.


 * Mise à jour icesrum
 * formation angular
 * installation Angular, Jhipster

|


 * 4h : Mise en place serveur AWS Amazon gratuit
 * 4h : Mise en place de Jenkins afin d'automatiser le build à chaque modification Git

|- | Problèmes rencontrés | |
 * Difficultés à commencer le front-end (en attente du back-end)

|

|

| |- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 3 |- | rowspan="3"| Mardi 24/10/17 | Tâches à réaliser | | | | | |- | Taches effectuées | | |
 * Push l'image docker sur Dockerhub (automatiquement avec Jenkins en fin de build) ne fonctionne pas (+personne ne semble avoir eu le problème)
 * La VM Amazon semble saturer au moment du build (de n'importe quel des composants de la web app)
 * Dockeriser l'application ne fonctionne pas (je ne sais pas exactement pourquoi encore)
 * Front end V1
 * Maquette IHM
 * Diagramme UML
 * Front end V1
 * Slides pour audit 2
 * Back-end paiement
 * Diagrammes UML
 * Front end V1
 * Slides pour audit 2
 * Continuer le déploiement et comprendre les problèmes
 * Mettre en place de manière propre le début de BDD pour que les autres puissent bosser (notamment sur le front-end)
 * Front end V0 : recherche de course selon différents paramètres.
 * Maquette IHM
 * Slides pour audit 2
 * Diagrammes de sequences


 * Diagrammes de séquence, vues physiques
 * Page UML du wiki
 * Documentation payement

|


 * Mise à jour Icescrum
 * fin slides Audit 2
 * réalisation Chart Graphique

| |- | Problèmes rencontrés | |
 * Remettre en place la BDD propre (à partir d'un .jdl)
 * En passant à 2Go de RAM et sur un serveur AWS EC2, Amazon Linux, ça tourne. Ca consomme pas mal de RAM et c'est limite.
 * https://imgur.com/a/EaoMc : la consommation du gateway, registre, et seul microservice.
 * Routage des pop-up
 * Connexion avec le back-end et utilisation d'un fonction de recherche de course
 * Difficultés à gérer les profiles différents (bénévole/organisateur) et les fonctionnalités possibles.

|

|

| |- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 4 |- | rowspan="4" | Mardi 07/11/17 | rowspan="2" | Tâches à réaliser | colspan="6" style="text-align: center; background-color:lightgray;"| Présenter l'audit 2 - Conception |- | | | | | |- | Taches effectuées | | | |
 * Il faut que l'on upgrade la VM, les 1Go de RAM semblent poser problème
 * Application Web
 * Analyse maquettes inscription (En attente de leur mise en ligne)
 * Application mobile
 * Formation
 * Analyse maquettes recherche
 * Application mobile
 * Formation
 * Analyse maquettes détails
 * Application mobile
 * Formation
 * Refaire les maquettes
 * Recherche
 * Inscription
 * Accueil
 * Détails d'une course
 * Mettre en ligne les maquettes (échéance Jeudi 09/11 soir.)
 * Analyse maquettes inscription
 * Application Web
 * Analyse maquettes accueil
 * 1h : Présentation de l'audit 2 et sprint planning
 * 1h30 : Développement de la page de recherche avec les champs spécifiques
 * 1h : Mise à jour du wiki
 * Comptes rendus de réunions
 * Maquettes
 * Arbres des tâches
 * 4h00 mise en place de l'environement de dev pour coder l'appli mobile + créer appli cordova de base et test sur browser + tentative de build pour la platforme android et recherche pour l'usage de typescript dans une app cordova
 * Support technique (pour des questions ponctuelles) à d'autre membre du groupe pour l’installation de cordova
 * 1H30 géolocalisation (simple affichage de sa position) ok sur android et browser chrome mais ne marche pas sous firefox.
 * 2H00 Revisions html/css https://www.freecodecamp.org/
 * 4h installation des outils (cordova) et analyse du code du front end web : architecture des fichier + tentative de recréer l'application web sur mobile (hors-sujet).
 * 2h documentation pour génerer des requètes vers le même back-end
 * 2h formation et mise en place de l'application mobile

| |- | Problèmes rencontrés | | | | Impossible d'installer correctement Android studio | |- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 5 |- |rowspan="3" | Mardi 14/11/17 | Tâches à réaliser | | | | | |- | Taches effectuées | | | |
 * 2h pour refaire les maquettes.
 * Recherche
 * Inscription
 * Accueil
 * Détails d'une course
 * Mise en ligne des maquettes (retard de 4 jours)
 * Première analyse des 4 maquettes (1h)
 * 6h Mise en place requêtes personnalisées JPA en cours
 * 5h sur update de la BDD, requêtes impossibles à effectuer dans le gateway après l'update, toujours pas résolu.
 * 30 min : Résolution d'un bug rencontré avec Git (qui était du à la mauvaise connexion internet)
 * Problèmes de versionage, le fait de générer de nouvelles entités avec JHipster crée des erreurs : besoin de retourner à une version antérieure du projet et d'y réinjecter les modifications déjà effectuées.
 * lenteur de téléchargement
 * le build de l'appli pour Android a échoué (problèmes de dépendances)
 * 2h00 problèmes de build résolus : appMobile Helloworld cordova ok sur browser et build passing sur android (real device)
 * problèmes de version/configuration de certain utilitaire (ex gradle 4.x.x installé mais le buid lance le téléchargement d'une version antérieur)
 * Certains tutoriel d'installation sont obsolètes et font usages de commandes deprecated
 * problème d'installation de modules npm avec cordova (HS)
 * Après update de la BDD et totale analyse du code, impossible d'effectuer des requêtes dans le back-end : solution facile, régénérer toute l'appli web. Il faudrait ne pas utiliser les fichiers front-end de base (générés par jhipster en fonction de la BDD) afin de faciliter le merge d'un nouveau backend.
 * Front-end application web (ajouté car en retard sur la réalisation aux sprints précédents)
 * Geolocalisation (déplacé au sprint précédent car réalisé)
 * Affichage de la position dans l'application mobile
 * Geolocalisation (déplacé au sprint précédent car réalisé)
 * Circuit d'une course
 * Geolocalisation (déplacé au sprint précédent car réalisé)
 * Circuit d'une course
 * Mise en ligne des évaluations des maquettes IHM (échéance 18/11)
 * Gestion de la méthodologie Scrum (en début de chaque sprint...)
 * Mise à jour du iceSCRUM !
 * Implémentation des requêtes dans le back-end
 * 30 min : Réunion de clôture et préparation de sprint
 * 4h30 : Travail sur le css du front-end pour adapter à la charte graphique et essayer d'avoir une page responsive.
 * 1h30 : Analyse du routage généré par JHipster
 * 2h : Ajout de pages de recherche et d'organisation de courses custom
 * 30 min Reunion de sprint
 * 1h30 tentative d'usage de plugin leaflet cordova
 * 1h00 reflexion itineraire + affichage simple d'un itineraire en partant du format geojson sur la carte dans le browser (mobil non testé)
 * 30min Affichage de la position repere sur une carte dans le browser (cordova run browser) . Dans l'application mobile cela ne marche pas  (voir section problèmes) UPDATES : bug résolu
 * 1h30 creation d'un depot git avec le code actuel en cachant le token d'acces des fonds de cartes (mapbox)
 * 30min Preparation en cours pour remplacer l'icone cordova de l'application par notre logo (fait par Boris)
 * 30 min réunion
 * 20 min rédaction fiche de suivi
 * 2h Affichage carte leaflet sur cordova + documentation itinéraire en leaflet
 * 1h min documentation Content Security Policy (problème d'autorisation)
 * 30 min Discussion sur l'implémentation back-end de l'itinéraire (Vincent et Aymeric).
 * 30 min documentation GeoJSON15 + requêtes html en JavaScript
 * 1h30 formation gatling
 * 4h installation sdk android pour cordova (gros bugs) pour pouvoir débuger l'affichage de la carte sur android
 * 30 min réunion
 * mise à jour fiche de suivi
 * 40 min mise a jour Icescrum
 * 1h30 travail avec Ahmed affichage carte leaflet
 * 15 min Documentation : réalisation itinéraire leaflet
 * 15 min documentation GeoJSON
 * 1h30 implémentation des tableaux d'études des maquettes IHM.
 * 3h, compréhension de l'apli mobile réalisé. Utilisation android studio pour charger l'apli sur le téléphone.

| |- | Problèmes rencontrés | | | | | |- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 6 |- |rowspan="3" | Mardi 28/11/17 | Tâches à réaliser | | | | | |- | Taches effectuées | | | | | |- | Problèmes rencontrés | | | | | |- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 7 |- |rowspan="3" | Mardi 05/12/17 | Tâches à réaliser | | | | | |- | Taches effectuées | | | | | ~11h |- | Problèmes rencontrés | | | | Difficulté pour trouver un panel vraiment varié et sportif, beaucoup de temps de déplacement pour trouver les personnes. | |- | colspan="7" style="text-align: center; background-color:green;"| SPRINT 8 |- |rowspan="3" | Mardi 12/12/17 | Tâches à réaliser | | | | |
 * Tout le mardi sur les requêtes back-end : impossible de tester les dates depuis swagger-ui. Le format LocalDate pose problème.
 * Début fonctions back-end envoi d'une course itinéraire
 * 5h sur début scripts ECS, pour génération des dockers et leur lancement sur VM EC2
 * Difficultés à ajuster la barre de navigation avec un logo et à avoir une image en bannière qui s'adapte à la taille de l'écran. (Apprentissage du css).
 * Attente d'un back-end fonctionnel pour pouvoir merge la branche avec le front-end et celle avec le back-end et ainsi pouvoir faire les requetes pour la recherche de courses
 * problème de sécurité/autorisations résolu par Ahmed
 * 30min l'affichage de la carte ne fonctionne pas sur tout les browser (par exemple sous firefox : code: 2 message: Unknown error acquiring position)
 * sous chrome la carte s'affiche
 * 6H IMPORTANT le build de l'apk pour android passe mais depuis l'insertion de la carte avec leaflet l'appli mobile n'est plus utilisable.
 * UPDATES Le bug est finalement résolu : l'application mobile affiche la carte (mais il m'a fallu pas mal de temps pour comprendre d'ou venais le problème et mettre en place un debug par navigateur ,plus quelques soucis technique avec l'usb et ma machine virtuelle)
 * Bug d'installation du sdk android
 * Appli web
 * Appli mobile : Roadbook
 * 30 min réunion
 * Back-end Roadbook
 * Travailler sur la méthodologie SCRUM
 * Préparation des tests IHM
 * Appli mobile
 * Intégration continue
 * Mise ne place de différents outils
 * 30min : Réunion de début de sprint
 * 3h : Merge de la branche sur laquelle a été implémenté le back-end et celle ou a été implémenté le front-end à la main (réplications des changements)
 * 3h : Travail sur front et back end de la création et recherche de course
 * 2h : Back-end recherche de course
 * 30min reunion
 * 6H00 recuperation d'un fichier geojson depuis un site distant, affichage sur la carte, recuperer les coordonées des checkpoints et les afficher par des marqueurs + push sur une branche git
 * 30min : Réunion
 * 3h résolution de problèmes lié à git
 * 1h génération du microservice 2
 * 3h Ajout de l'entité "itinerary" et création de la requete permettant d'obtenir l'itineraire de la course
 * 2h Bug lié au traitement des requète (SQLGrammarException généré par JPA)
 * 30 min : Réunion de clôture et préparation de sprint
 * 1h : mise a jour scrum + compte rendu réunion
 * 5h : préparation des tests IHM, recherche du panel et rédaction des test.
 * 11h+2h+6h+6h+4h+4h sur l'intégration continue : étude des problématiques de scaling, réplication. Gros problèmes pour configurer ECS avec le projet JHipster.
 * Script de déploiement service/tâche ECS. Mise en place d'une instance EC2 avec Jenkins : scrutation Git, lancement build. A faire encore : tests et lancement de la mise à jour du service ECS.
 * Codage de la requête pour la recherche de course pour des mots-clefs incomplets et ayant des paramètre facultatifs. (non terminé)
 * permissions de sécurité ,marqueurs de localisation identique au marqueurs de point de contrôle : à modifier update OK
 * bug au traitement des requètes
 * Gros problème sur l'enregistrement auprès du registry résolu.
 * Appli web
 * Calcul des temps de passage
 * Back-end roadbook
 * Design web
 * Préparation tests IHM
 * Conduire les tests IHM
 * Déploiement
 * 30min : Réunion
 * 30min : Recherche pour un accès non connecté à certaines pages
 * 2h : Page de détails d'une course
 * 1h : Travail sur l'affichage de la page de recherche
 * 1h : Traduction des pages liés à l'user et parcours du code pour chercher comment afficher les résultats de la recherche sans avoir à se connecter.
 * 2h30 : Ajouter un champ à la table des courses.
 * 2h30 : Création de la page d'inscription et essai de lien avec le back-end pour sauvegarder une inscription.
 * 30min : Réunion
 * 3h affichage de popup sur les checkpoints + affichage des checkpoint en cercles
 * 2H30 commencer le lien entre le backend et l'appli mobile : debut d'authentification et reception itineraire
 * 1H30 updates : reception d'un itineraire depuis le site web en local vers l'app (web-browser ok) (test sur mobile android pas encore fait)
 * 30 min : réunion
 * 3h30 : Résolution du bug des requêtes (fonctionnels)
 * 1h30 intégration de requêtes avec l'application mobile, découverte d'un bug sur la longueur de l'itinéraire
 * 1h : Tentative de faire fonctionner SonarQube
 * 1h : Cloc + Echec du lancement de gatling à l'aide de maven
 * 30min : Réunion
 * 1h : Mise à jour compte-rendu réunion + Iscrum
 * 5h: travail front-end sur fiche d'inscription.
 * 5h réalisation des tests IHM avec un panel test le weekend.
 * Continuation du déploiement continu : mise en place des tests pour valider les nouvelles version : récupération token connexion + quelques requêtes simples BDD.
 * Séparation en cluster des différentes tâches. Solution qui simplifierait tout : utiliser awsvpc mais oblige à payer pas mal. Je pense que l'on va tout mettre sur une EC2 auto scalée, et au moins un microservice sur une autre machine en guise de démonstration.
 * Modification : déploiement sur un grand cluster de micro réussi. Les machines sont nommées, les services s'éxecutent toujours sur les mêmes machines, du coup on peut redeployer facilement avec les IP privées.
 * Ajout d'un champ
 * L'utilisation de yo jhipster:entity crée des conflits avec liquibase (génération de changelog automatiquement mais checksum fausses)
 * Aucune réponse trouvée sur les forums à part "JHipster le fait automatiquement"
 * Au final : modification à la main du changelog.xml générés par ./mvnw conpile liquibase:diff et ajout dans master.xml
 * Difficultés de compréhension des message d'erreurs.
 * 1H00 La taille de la chaine geojson est limité à 255 caracteres mais l'itineraire voulu etait bien plus gros
 * creation d'un nouvel itineraire plus petit
 * 30m Echec du lancement de gatling à l'aide de maven
 * 1h SonarQube echec au lancement
 * 1h30 bug sur la longeur d'itinéraire dans le Back-End
 * Finalisation appli web
 * Préparation présentation finale
 * Finalisation appli mobile
 * Préparation présentation finale
 * Tests de charge
 * Préparation présentation finale
 * Remplir la fiche d'auto-évaluation
 * Mise en ligne test IHM
 * Préparation présentation finale
 * Finalisation déploiement
 * Préparation présentation finale

|- | Taches effectuées | | | |
 * 45min : Réunion de sprint
 * 1h : Travail sur l'ajout d'un champ à l'entité Race (enfin réussit)
 * 1h30 : Configuration de l'envoi de mails à l'inscription
 * 3h : Ajout de la sauvegarde des participants (inscription à une course)
 * 2h : Ajout d'une page résumant les courses auxquelles l'utilisateur courant est inscrit. (Récupération des participants)
 * 2h30 : Ajout d'une page contenant les courses organisées par l'utilisateur courant et une page pour pouvoir les modifier
 * 1h : Préparation des slides pour la présentation et répartition des tâches pour le week-end.
 * 1h : Retravailler l'IHM abstraite vis à vis des implémentations réelles et mettre à jour le wiki avec les livrables.
 * 2h : Tenter de résoudre le problèmes des formats des dates pour l'update de courses.
 * 1h : Test de la recherche et correction (pour ne pas prendre en compte la casse pour le lieu)
 * 45min : Réunion de sprint
 * 30min : slides
 * 1H : temps de passages (idées au brouillon)
 * 1H : nettoyage de code
 * 1H : push sur git + pull pour verifier que ca marche (web-browser ok par contre je n'est pas encore reussi à faire marcher sur le mobile la version avec le lien au site)
 * 45min : Réunion de sprint
 * 2h30 : Configuration des tests de charge
 * 2h : Tentative de faire fonctionner SonarQube sur les microservices (bug Tests de SonarQube)
 * 2h30 : Contabilisation des heures et réalisation de COCOMO
 * Réfléxion sur le moyen d'implementer les temps de passage
 * 45min : Réunion de sprint
 * 40 min mise à jour Icescrum + compte rendu de réunion.
 * 3h analyse des tests IHM.
 * 2h préparation soutenance.
 * 30 min fiche auto-évaluation

| 8h+5h+5h+6h+7h |- | Problèmes rencontrés | | | | | |- | colspan="7" style="text-align: center; background-color:green;"| SOUTENANCE FINALE - 19/12 |- |rowspan="3" | Total horaire | Estimation de 35h pour les sprints 1 à 4 | 35 + 7 + 8,5 + 10 + 15,75 = 81,75 h | 35 + 10 + 12 + 6,5 + 8,5 + 8,25 = 80,25 | 35 + 6 + 10,5 + 9,5 + 7,5 + 7,75 = 76,25 | 35 + 4 + 8 + 6,5 + 6,5 + 8 = 68 | 35 + 11 + 12 + 33 + 11 + 45 = 147 |-
 * Remise en place propre des scripts de déploiement ECS : description entière des containers + push automatique sur le Container Registry AWS, update du service (=redéploiement automatique dans le cluster et sur la bonne machine). Pour l'instant un redéploiement va redéployer tous les services (alors que de façon optimale il est inutile d'arrêter les services non concernés par les modifications).
 * Les conteneurs dans les instances EC2 d'ECS ont des IP non modifiables si on paye pas 18€ par mois ... Sans les modifier conflit avec le registre si on utilise les mêmes IP docker sur des serveurs différents.
 * Réussi à contrer les fourberies de ECS qui proposent des services qui ne devraient pas être payant, tel que la non liberté des IP privées... Ou changer les IP des conteneurs.
 * Mise en place de la configuration d'authentification jwt : la communication du gateway avec les microservices (sur une autre machine EC2) se fait enfin sans problème.
 * Config JWT récupéré à partir d'un dépot Git.
 * Clean de certains tests qui font référence à des entities qui ne sont plus là.
 * Déploiement sur le vrai projet et non plus projet bac à sable perso : plein de problème au moment du build des .war
 * Réplication BDD fonctionne enfin : execution script au lancement du docker pour setup la réplication
 * 2h : Erreur lors du retrait d'un champ à l'aide de yo jhipster:entity encore lié à liquibase, corrigée.
 * Problème de récupération des dates (format) pour la page de modification d'une couse (pour les update aussi lors d'une inscription de participant)
 * 2H tentative de faire marcher la version avec lien back end sur mobile : le telephone n'arrive pas à accéder au site web tournant sur ma machine virtuelle
 * 2H problèmes de connection : error (401/403) entre l'app mobile version web-browser sur ma vm et le site web tournant sur un autre pc
 * Réplication de base master-slave MySQL impossible à faire fonctionner
 * Problème incompréhensible sur l'authentification du microservice à la DB (qui est sur une machine distante)