PROJET-INFO5 Contributions JHipster

From air
Jump to: navigation, search

Projet contribution Jhipster

Notre projet de fin d'étude a pour objectif de contribuer au générateur de code open source JHipster. Cette plateforme de développement permet de générer, développer et déployer une application web Spring Boot + Angular/React et des microservices Spring. Jhipster a une politique orienté vers les developpeurs et met tout en oeuvre pour aider et simplifier le cycle de vie d'une application web.

Logo Jhipster

Le but de notre projet et de proposer des outils et briques de bases aux développeurs pour simplifier et accélerer le développement. De nombreuses contributions sont possibles (une liste non exaustive est disponible ici)...

Le temps de travail alloué à ce projet étant limité, nous allons nous concentrer sur des contributions que nous estimons essentielles :

  • Ajout d'utilitaires sur les bases de données (docker-compose pour les backups periodiques, interface d'admin type phpmyadmin)
  • Ajout d'un composant de paiement Stripe (frontend Angular et React) et d'un client feign vers stripe.com dans le backend Spring (lien)
  • Optimisation des transferts d'images de type ImageBlob (caching client, etag, vignette)
  • Intégration du protocole pub-sub MQTT. Ajout du docker-compose file pour Mosquitto ou RabbitMQ
  • Intégration du protocole pub-sub AMQP.
  • Gestion de quota sur les créations d'entité par rapport aux utilisateurs ou à leur profil/plan.
  • Page Home avec dashboard donnant les métriques sur les instances créées pour chaque entité (nombre d'instance, pourcentage si quota, ...).

L'équipe

  • GROS-DAILLON Hugo : Chef de projet
  • LAFRASSE Cédric : Scrum master
  • COURTIAL Julien : Developpeur
  • TERRIER Bastien : Developpeur

Encadrement : Didier Donsez et Anthony Geourjon

Gestion de projet

Organisation Github : pour l'implémentation et le versionning, nous avons créé une organisation pour regrouper nos différentes contributions

Organisation Docker Hub : pour le build d'image docker nécessaire pour nos contributions

SCRUM

Sprint 1 - Du 29/01/19 au 05/02/19

Journal

Récapitulatif du sprint :

  • Création d'une image docker pour le backup de base de données postgreSQL sur Docker hub :Docker-pg_dump
Date COURTIAL Julien GROS-DAILLON Hugo LAFRASSE Cédric TERRIER Bastien
SPRINT 1
Mardi 29/01/19 Tâches Réflexion sur le sujet, brainstorming, organisation, répartition des rôles Réflexion sur le sujet, brainstorming, organisation, répartition des rôles Réflexion sur le sujet, brainstorming, organisation, répartition des rôles Réflexion sur le sujet, brainstorming, organisation, répartition des rôles
Remarques
  • Développeur
  • Chef de projet
  • Scrum master
  • Développeur
Mercredi 30/01/19 Tâches Recherche sur les images docker pouvant être utiles à la réalisation de la première contribution (backup Base de données) Recherche sur les images docker pouvant être utiles à la réalisation de la première contribution (backup Base de données), explication de la méthode de génération Jhipster aux autres membres du groupe Recherche sur les images docker pouvant être utiles à la réalisation de la première contribution (backup Base de données) Recherche sur les images docker pouvant être utiles à la réalisation de la première contribution (backup Base de données), explication de la méthode de génération Jhipster aux autres membres du groupe
Remarques Nous avons décidé de commencer la première contribution tous ensemble, afin de se former.
Jeudi 31/01/19 Tâches
Remarques
  • Développeur
  • Chef de projet
  • Scrum master
  • Développeur
Vendredi 01/02/19 Tâches Réalisation des premiers test d'images Docker de backup de base de données. Recherche et début de réalisation d'une contribution de traduction automatique d'entité. Réalisation des premiers test d'images Docker de backup de base de données. Après-midi : IAE Création des différentes organisation (GitHub, Docker) et préparation du générateur de backup de base de données. Après-midi : IAE
Remarques
  • Développeur
  • Chef de projet
  • Scrum master
  • Développeur
Lundi 04/02/19 Tâches Réalisation du système de backup pour les bases PostgreSQL et MySQL. Recherche et travail sur la contribution de traduction automatique d'entité. Réalisation du système de backup pour les bases MongoDB et recherche pour d'autres bases de données (Cassandra, MariaDB). Réalisation et test du générateur de base de données pour MySQL.
Remarques
  • Développeur
  • Chef de projet
  • Scrum master
  • Développeur

Compte rendu réunion 04 Février 2019

Membres : membres de l'équipe contribution UGA (LAFRASSE COURTIAL GROS-DAILLON TERRIER) et Didier DONSEZ

Lieu : Polytech

Heure : 13h00


Pour rappel, une liste non exhaustive des contributions possibles pour JHipster se trouve ici.

Plus d'explication sur les projets prioritisés :

  • Back-up de BDD : réutilisation d'images docker à intégrer dans le docker file du projet généré
  • Administration des BDD : réutilisation d'images docker de types phpmyadmin pour l'administration des bases de données
  • Intégration de Stripe : stripe est une plateforme de paiement qui contient un mode de développement complet. L'objectif de cette contribution est de créer un espace front-end de paiement lié au back-end JHipster pour réaliser un paiement Stripe. Lors d'un paiement, une entité 'payment' sera créée pour sauvegarder la date, le token de paiement, la réponse du serveur Stripe...
  • Optimisation de transfert d'images : par défaut avec JHipster, les images sont rechargées à chaque fois que l'on charge la page. L'objectif est d'utiliser une bibliothèque de cache s'interfaçant avec le navigateur pour optimiser le traffic entre le client et le serveur.
  • MQTT et AMQP : ces sujets ne sont pas prioritaires
  • Dashboard : récapitulatif du nombre d'entités créées sous forme de dashboard, intégration d'un quota pour limiter la création d'entités.
  • Génération multilangue : utiliser un traducteur pour traduire automatiquement les entités générées (traduction des fichier i18n). Nous pouvons regarder AXIMAG si cela peut nous aider.


Sprint 2 - Du 05/02/19 au 11/02/19

Journal

Récapitulatif du sprint :

  • Publication d'un module JHipster sur le Marketplace pour le backup de bases de données : Database Backup
  • Publication d'un module JHipster sur le Marketplace pour l'administration des bases de données : Administration Database
  • Publication d'un module JHipster sur le Marketplace pour la traduction automatique des entités : Translation
  • Publication d'un module JHipster sur le Marketplace pour installer toutes les dépendances nécessaires pour utiliser Angular Material : Angular Material Integration
Date COURTIAL Julien GROS-DAILLON Hugo LAFRASSE Cédric TERRIER Bastien
SPRINT 2
Mardi 05/02/19 Tâches Finalisation de la fonctionnalité de traduction automatique d'entité et tests. Finalisation des pages pour le module d'administration des base de données et tests. Découverte d'un bug sur une image docker utilisé : dépôt d'une issue sur le github correspondant. Finalisation des pages pour le module d'administration des base de données et tests. Finalisation des pages pour le module d'administration des base de données et tests. Réalisation de la documentation pour le module de backup de base de données.
Remarques Publication du premier module : backup de base de données.
Mercredi 06/02/19 Tâches Réalisation de la documentation pour le module de backup de base de données. Correction d'un bug sur le module de backup. Réalisation de la documentation et du module de traduction automatique des entités. Puis publication de ce module. Réalisation d'un module d'installation d'Angular Material dans un projet et publication. Intégration des différentes pages d'administration dans un module et réalisation de la documentation pour le module de backup de base de données.
Remarques Publication de trois nouveaux modules : module de traduction automatique d'entité, module d'administration de base de données et module d'installation d'angular material.
Jeudi 07/02/19 Tâches Débogage du module d'administration des bases de données. Lecture de la documentation sur Stripe. Lecture de la documentation sur Stripe. Début de réalisation de fonctionnalité d'un système de paiement Stripe. Débogage du module d'administration des bases de données. Lecture de la documentation sur Stripe. Début de réalisation de fonctionnalité d'un système de paiement Stripe.
Remarques
Vendredi 08/02/19 Tâches Cours à l'IAE Cours à l'IAE
Remarques
Lundi 11/02/19 Tâches Test et publication de la mise à jour de database backup. Test et update du module translation. Lecture de la documentation sur Stripe. Création d'un nouveau service de paiement nécessaire (lié au module Stripe).


Sprint 3 - Du 12/02/19 au 18/02/19

Journal

Récapitulatif du sprint :

  • Publication d'un module JHipster sur le Marketplace pour l'intégration du module de paiement Stripe : Stripe
  • Publication d'un module JHipster sur le Marketplace pour la gestion des quotas : Quota
  • Publication d'une application de démonstration pour 5 de nos générateurs :

- Database backup et administration : Database Sample

- Angular Material : Angular Material Sample

- Quota : Quota Sample

- Translation : Translation Sample

Date COURTIAL Julien GROS-DAILLON Hugo LAFRASSE Cédric TERRIER Bastien
SPRINT 3
Mardi 12/02/19 Tâches Travail sur le module de quota. Travail sur le module de quota. Travail sur le module Stripe. Travail sur le module Stripe.
Remarques
Mercredi 13/02/19 Tâches Finalisation et publication du module de quota. Finalisation et publication du module de quota. Travail sur le module Stripe. Travail sur le module Stripe.
Remarques Publication d'un nouveau module : module de gestion de quota sur les entités.
Jeudi 14/02/19 Tâches Réalisation des sample application pour les modules database et quota. Réalisation de la sample application du module translation. Travail et publication du module Stripe. Réalisation de la sample application du module angular material. Travail et publication du module Stripe.
Remarques
Vendredi 15/02/19 Tâches Cours à l'IAE Cours à l'IAE
Remarques
Lundi 18/02/19 Tâches Réunion avec Didier Donsez au FABLAB. Réunion avec Didier Donsez au FABLAB. Réunion avec Didier Donsez au FABLAB. Réunion avec Didier Donsez au FABLAB.

Compte rendu réunion 18 Février 2019

Membres : membres de l'équipe contribution UGA (LAFRASSE COURTIAL GROS-DAILLON TERRIER) et Didier DONSEZ

Lieu : FABLAB

Heure : 11h30

Retour sur les générateurs déjà développés :

  • Angular Material integration : manque d'une dépendance maven et d'un lien vers mat-icon
  • Angular Material integration Sample App : possibilité d'ajouter une page reprenant tous les composants angular material
  • Stripe : Ajouter la page front end dans la barre de navigation (il est impossible de trouver la page sans lire la documentation)
  • Quotas : Modification du générateur pour utiliser les entités créées dans la base (count dans les jpa repository)
  • Database : Modifier le code pour le rendre plus maintenable (suppression du switch case)

Remarques pour la suite :

  • Réfléchir sur l'intégration d'un back-end JAVAEE pour les microservices
  • Réfléchir sur la modification du front-end généré par JHipster pour l'utilisation d'Angular Materials


Sprint 4 - Du 05/03/19 au 11/03/19

Journal

Récapitulatif du sprint :

Date COURTIAL Julien GROS-DAILLON Hugo LAFRASSE Cédric TERRIER Bastien
SPRINT 4
Mardi 05/03/19 Tâches
Remarques Préparation de la présentation de mi-parcours
Mercredi 06/03/19 Tâches
Remarques
Jeudi 07/03/19 Tâches
Remarques
Vendredi 08/03/19 Tâches Cours à l'IAE Cours à l'IAE
Remarques
Lundi 11/03/19 Tâches