Contributions open-source au projet JHipster

Encadrant : Didier Donsez.

Ce projet propose de développer plusieurs contributions au projet open-source JHipster

Liste non exhaustive des extensions (au générateur et à JDL) à développer et à contribuer
 * Bug fixes à puisser dans https://github.com/jhipster/generator-jhipster/issues
 * Clé primaire applicative (par défaut, le générateur d'entité génère un champ Id qui est la clé primaire)
 * intégration de nouveaux types de données et des composants Angular 4 idoines
 * geoloc, altitude
 * Séries temporelles TSBD
 * Graphes (http://projects.spring.io/spring-data-neo4j/)
 * Images (stockage File System, stockage BLOB du backend BD, stockage CDN, ...).
 * Ajout de nouveaux backends BD
 * OpenTSDB, Gnocchi, InfluxDB
 * Graphes (http://projects.spring.io/spring-data-neo4j/)
 * Composants d'UI pour les champs : badges pour les types boolean et enum, toogle-slide pour les checkboxs, angular-material, Leaflet, charts (statiques, temps réel) ...)
 * readonly fields
 * final fields : (certains champs ne doivent plus être modifiables après l'instanciation du bean).
 * field visibility (public, group, private) : (certains champs doivent être visibles soit de tous les utilisateurs, soit de tous les utilisateurs authentifiés, des utilisateurs appartenant à un groupe ou bien seulement de l'utilisateur (ie créateur).
 * Ajout des champs createdBy, lastModifiedBy, createrAt, lastModifiedAt (voir l'entité User) à une entité générée.
 * QueryService
 * userId fields
 * extra user-profile
 * Adresses
 * Réseaux sociaux
 * Sports
 * Forme (ie pour le sport)
 * amélioration du volet Swagger (OpenAPI2.0 et OpenAPI3.0)
 * Annotations supplémentaires
 * Multi-thèmes Dashboard (SBAdmin 2, Gentella, ...)
 * Intégration d'un backend CMS.
 * Gestion de Content Delivery Network.
 * Intégration du protocole pub-sub MQTT.
 * Intégration du protocole pub-sub AMQP.
 * gestionnaire centralisé des Users et de leurs profiles (pour plusieurs microservices)
 * gestion du RateLimit (IP origin, GeoIPing, per user) par type d'opération (GET, PUT, POST, DELETE).
 * Génération du Dockerfile pour les instances de container pour HAProxy (gestion de SSL-Termination, DDoS, ...).
 * Génération du Dockerfile pour les instances de container pour Nginx.
 * Gestion de quota sur les créations d'entité.
 * Intégration de chatbots
 * Intégration de la traduction automatique des messages et des contenus des champs texte
 * Ajout de l'import en bulk d'un entity (voir Spring Batch) par upload de fichiers CSV/XLS (génération du backend et du frontend).
 * Ajout de Captcha à la création de compte, au login, ... (ReCaptcha, ...)
 * Ajout d'autres réseaux sociaux (Linkedin, Github, ...)
 * Ajout de composants de paiement (Paypal, Cartes de crédit, ...)
 * Ajout de Telegraf, Hawkular aux dockerfiles générés des containers.
 * Voir http://www.hawkular.org/blog/2017/06/9/opentracing-spring-boot.html
 * Ajout d'un dockerfile pour Grafana configuré avec un dashboard taillé pour JHipster et les entités générées.
 * Intégration de Mockito
 * Intégration Websocket (lien)
 * Génération des fonctions pour un backend OpenWhisk (containers Docker) ou pour IBM Bluemix OpenWhisk.
 * Génération du backend pour Play : voir le code généré par Swagger Codegen pour Play et https://github.com/peterszatmary/learning-play-framework/wiki/Mysql,-JPA-and-Play!., https://github.com/playframework/play-java-rest-api-example
 * Intégration (sécurisée) de l'API Health Check http://microservices.io/patterns/observability/health-check-api.html
 * Ajout de HATEOS (exemple)
 * Ajout de Apache Phoenix à JHipster (JPARepository for Phoenix)
 * Ajout de Vitess à JHipster (JPARepository)
 * Ajout de Memcached à JHipster
 * Bloquage des authentifications répétées en échec (brute force) avec Fail2ban. (lien
 * Banissement des adresses IP au moyen de FreeGeoIP (Dockerfile)
 * Ajout de Memcached à JHipster
 * Bloquage des authentifications répétées en échec (brute force) avec Fail2ban. (lien
 * Banissement des adresses IP au moyen de FreeGeoIP (Dockerfile)

Une application de démo sera proposée en exemple. Par exemple, un gestionnaire de course sportive (voir groupe UltraTeam).