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=


 * [[Media:Rapport Contribution JHipster UGA.pdf|Rapport final]]
 * [[Media:Rapport - MANAGEMENT- Contribution JHipster UGA.pdf|Rapport Management]]
 * [[Media:PowerPoint-Contribution-JHipster-UGA.pdf|Presentation finale FR]]
 * [[Media:PowerPoint-Contribution-JHipster-UGA-ENG.pdf|Final Presentation EN]]
 * [[Media:Flyer-Contribution-JHipster-UGA.pdf|Flyer]]
 * [[Media:Jhipster_Contribution_miparcour_2019.pdf|Presentation de mi-parcours]]
 * GitHub

=SCRUM=

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

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.

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

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

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

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)

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.