PROJET-INFO5 Contributions JHipster
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.
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 - Developpeur
- LAFRASSE Cédric : Scrum master - Developpeur
- 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
Nos contributions
Nos contributions ont été réalisées sous forme de générateurs JHipster. Tous les générateurs sont visible sur le marketplace officiel de Jhipster ou bien sur le Github de notre organisation.
Documentation
- Rapport final
- Rapport Management
- Presentation finale FR
- Final Presentation EN
- Flyer
- Presentation de mi-parcours
- GitHub
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
- Création d'une issue sur le projet MySQL-Backup de deitch : https://github.com/deitch/mysql-backup/issues/85
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 |
|
|
|
| |||
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 | |||||||
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 | |||||||
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 |
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 :
- Correctifs des générateurs et des applications de démonstration à l'issue de la présentation de mi-parcours (Quota, Angular Material, Database Backup et Administration, Stripe).
- Publication d'une application de démo pour le générateur Stripe Payment : Stripe Sample Application.
- Recherche sur les prochaines contributions (Paypal et Chatbot)
Date | COURTIAL Julien | GROS-DAILLON Hugo | LAFRASSE Cédric | TERRIER Bastien | |||
---|---|---|---|---|---|---|---|
SPRINT 4 | |||||||
Mardi 05/03/19 | Tâches | Modification et correction du module de quota. | Tentative d'intégration de Paypal dans un projet JHipster | Modification et maintenance du générateur et de la sample application angular material. | Réalisation d'une sample app pour le générateur Stripe Payment. | ||
Remarques | Préparation de la présentation de mi-parcours | ||||||
Mercredi 06/03/19 | Tâches | Modification et correction du module de quota. | Intégration de Paypal dans JHipster réussie. | Modification et maintenance du générateur et de la sample application angular material. | Réalisation d'une sample app pour le générateur Stripe Payment. | ||
Remarques | |||||||
Jeudi 07/03/19 | Tâches | Recherche sur un nouveau générateur (Chat bot). | Début de la réalisation du générateur intégrant Paypal. | Recherche sur Angular Material (intégration d'une navbar) | Maintenance du générateur Stripe Payment. | ||
Remarques | |||||||
Vendredi 08/03/19 | Tâches | Cours à l'IAE | Cours à l'IAE | ||||
Remarques | |||||||
Lundi 11/03/19 | Tâches | Correctifs pour le générateur de backup de base de données. | Correctifs pour le générateur de traduction automatique des entités, travail sur le générateur d'intégration de paypal à JHipster. | Correctifs pour le générateur Angular Material. | Correctifs pour le générateur de paiement Stripe. |
Sprint 5 - Du 12/03/19 au 18/03/19
Journal
Récapitulatif du sprint :
- Publication du générateur PayPal
- Résolution de bugs sur les générateurs Stripe et PayPal
- Sample Apps Stripe et PayPal
- Publication du générateur et des Sample Apps du générateur ChatBot Rasa, pour Angular et React.
Date | COURTIAL Julien | GROS-DAILLON Hugo | LAFRASSE Cédric | TERRIER Bastien | |||
---|---|---|---|---|---|---|---|
SPRINT 5 | |||||||
Mardi 12/03/19 | Tâches | Finalisation et publication du générateur ChatBot pour React. | Finalisation et publication du générateur Paypal. | Modification et maintenance du générateur et de la sample application angular material (travail sur la NavBar). | Finalisation de la sample application Stripe et maintenance du générateur. | ||
Remarques | Publication du générateur Paypal et du générateur ChatBot. | ||||||
Mercredi 13/03/19 | Tâches | Recherche et réalisation de la version Angular du Chatbot. | Réalisation de la sample application Paypal | Finalisation de la navbar Angular et de l'intégration de la nouvelle page Angular Material sample. | Maintenance du générateur Stripe et recherche sur le changement de thème dynamique Angular Material. | ||
Remarques | |||||||
Jeudi 14/03/19 | Tâches | Réalisation du chatbot Angular. | Travail sur le rapport et la présentation. | Travail sur le rapport et la présentation. Finalisation du changement de thème dynamique sur la sample application Angular material. | Travail sur le rapport et la présentation. | ||
Remarques | |||||||
Vendredi 08/03/19 | Tâches | Cours à l'IAE | Cours à l'IAE | ||||
Remarques | |||||||
Lundi 18/03/19 | Tâches | Amélioration du générateur de chatbot pour le faire fonctionner avec Angular et React. | Résolutions de problèmes sur les générateurs PayPal et Stripe. | Travail sur le rapport, présentation, air.imag etc. | Résolutions de problèmes sur les générateurs PayPal et Stripe. |