Contributions open-source au projet JHipster: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
Encadrant : Didier Donsez.
Encadrant : Didier Donsez, Anthony Gourgeon.


Ce projet propose de développer plusieurs contributions au projet open-source [[JHipster]]
Ce projet propose de développer plusieurs contributions au projet open-source [[JHipster]]
Line 5: Line 5:
Liste non exhaustive et non priorisée des extensions (au générateur et à JDL) à développer et à contribuer auprès de la communauté (via le marketplace).
Liste non exhaustive et non priorisée des extensions (au générateur et à JDL) à développer et à contribuer auprès de la communauté (via le marketplace).
* Bug fixes à puisser dans https://github.com/jhipster/generator-jhipster/issues
* Bug fixes à puisser dans https://github.com/jhipster/generator-jhipster/issues
* Intégration authentification CAS (c'est ce que nous utilisons dans les universités)
* 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 d'une blockchain de consortium Hyperledger (via JPA ?)
* intégration de nouveaux types de données et des composants Angular 4 idoines
* Ajout d'utilitaires bases de données (docker-compose pour les backups periodiques, interface d'admin type phpmyadmin)
** geoloc, altitude
* Ajout d'un composant de paiement [http://www.baeldung.com/java-stripe-api|Stripe] (frontend) et d'un client feign vers stripe.com dans le backend
** Séries temporelles [[TSBD]]
* Ajout de composants de paiement (Paypal, Cartes de crédit ...)
** Graphes (http://projects.spring.io/spring-data-neo4j/)
* Intégration d'un chatbot Rasa.io
** Images (stockage File System, stockage BLOB du backend BD, stockage CDN, ...).
* Optimisation des transferts d'images de type ImageBlob (caching client, etag, vignette)
** ...
* Ajout d'un ClusteredFileStorage pour les stockage des images côté backend.
* Traduction automatique des messages i18n ?
* Traduction automatique des valeurs des champs texte des entités
* Ajout de nouveaux backends BD
* Ajout de nouveaux backends BD
** [[OpenTSDB]], [[InfluxDB]]
** [[OpenTSDB]], [[InfluxDB]]
* Amélioration du client [[Swagger]] UI ([[OpenAPI]]2.0 et [[OpenAPI]]3.0)
** [[DBaaS]] (InfluxData, OVH Metrics) ...
** 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]] ([[OpenAPI]]2.0 et [[OpenAPI]]3.0)
** Annotations supplémentaires
* Géneration d'un frontend [[Apache Cordova]] (incluant une [[Leaflet]] pour les Entity ayant des types "Position").
* Multi-thèmes Dashboard
* Multi-thèmes Dashboard
** SBAdmin 2
** SBAdmin 2
** Gentella
** Gentella
** Ngx-Admin ([https://github.com/akveo/ngx-admin/blob/master/README.md lien]), Nebulla ([https://akveo.github.io/nebular/#/docs/installation/add-into-existing-project lien])
** Ngx-Admin ([https://github.com/akveo/ngx-admin/blob/master/README.md lien]), Nebulla ([https://akveo.github.io/nebular/#/docs/installation/add-into-existing-project lien])
* Gestion de [[Content Delivery Network]] type AWS S3.
* Intégration d'un backend [[CMS]].
* Intégration du protocole pub-sub [[MQTT]]. Ajout du docker-compose file pour [[Mosquitto]] ou [[RabbitMQ]]
* Gestion de [[Content Delivery Network]].
* Intégration du protocole pub-sub [[MQTT]]. Ajout du docker-compose file pour [[Mosquitto]]
* Intégration du protocole pub-sub [[AMQP]].
* Intégration du protocole pub-sub [[AMQP]]. Ajout du docker-compose file pour [[RabbitMQ]] et pour [[JoramMQ]].
* 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).
** [[Resilience4j]]
* Génération du Dockerfile pour les instances de container pour [[HAProxy]] (gestion de SSL-Termination, DDoS, ...) (avec ou sans [[Let's Encrypt]]).
* Gestion de quota sur les créations d'entité.
* Gestion de quota sur les créations d'entité.
* Intégration de [[Chatbot|chatbot]]s open-source ([[Rasa.ai]] par exemple) ou commerciaux.
* Intégration de [[Chatbot|chatbot]]s open-source ([[Rasa.ai]] par exemple) ou commerciaux.
* Intégration de la traduction automatique des messages et des contenus des champs texte
* 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 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 de schema-based form generator component for Angular X pour la création et l'édition des entités''' https://github.com/makinacorpus/ngx-schema-form
* Ajout d'autres réseaux sociaux (Linkedin, Github, ...)
* Ajout de composants de paiement (Paypal, Cartes de crédit, [http://www.baeldung.com/java-stripe-api|Stripe] ...)
* 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é pour [[Prometheus]] avec un dashboard taillé pour JHipster et les entités générées.
* Intégration de [[Mockito]]
* Intégration Websocket ([https://dzone.com/articles/spring-boot-server-sent-events-tutorial lien])
* Génération des fonctions pour un backend [[OpenWhisk]] ([https://hub.docker.com/u/openwhisk/ containers Docker]) ou pour [https://www.ibm.com/cloud-computing/bluemix/fr/openwhisk 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 ([https://dzone.com/articles/creating-a-rest-api-with-java-and-spring exemple])
* Ajout d'un container [[Apache Phoenix]] à JHipster ([https://phoenix.apache.org/phoenix_orm.html JPARepository for Phoenix])
* Ajout d'un container [[Vitess]] à JHipster (JPARepository)
* Ajout d'un container [[Vitess]] à JHipster (JPARepository)
* Ajout d'un container [[Memcached]] à JHipster
* Ajout d'un container [[Memcached]] à JHipster
* Bloquage des authentifications répétées en échec (brute force) avec [[Fail2ban]]. ([https://www.google.fr/search?client=firefox-b&dcr=0q=fail2ban+spring lien]
* Bloquage des authentifications répétées en échec (brute force) avec [[Fail2ban]]. ([https://www.google.fr/search?client=firefox-b&dcr=0q=fail2ban+spring lien]
* Banissement des adresses IP au moyen de [https://freegeoip.net FreeGeoIP] ([https://hub.docker.com/r/fiorix/freegeoip/~/dockerfile/ Dockerfile])
* Banissement des adresses IP au moyen de [https://freegeoip.net FreeGeoIP] ([https://hub.docker.com/r/fiorix/freegeoip/~/dockerfile/ Dockerfile])
* Intégration de [[ElastAlert]]
* Intégration de [[Intel Clear Containers]]
* Intégration de [[Intel Clear Containers]]
* Ajouter une confirmation textuelle pour la suppression d'une entité (exemple, le nom de l'entité, une phrase type, ...).
* Intégration de Tags "user-defined" sur des entités (ajout/retrait/recherche par groupe de tags, liste de tags par défaut).
Remarque: il faut conserver de forcer la destruction en utilisation ligne de commandes ("force"=true)
* Intégration des [https://api.slack.com/web API Slack]. Faire une petite démo.
* Ajout de test avec [[Spock]] ([https://dzone.com/articles/testing-your-api-assertions-with-the-spock-framewo lien])
* Authentification par One-Time Password
** [https://dzone.com/articles/otp-one-time-password-using-spring-boot-web-applic lien]
** [https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 Google Anthenticator]
** [http://www.baeldung.com/spring-security-two-factor-authentication-with-soft-token 2Factor Authentication]
* Ajouter une confirmation textuelle pour la suppression d'une entité (exemple, le nom de l'entité, une phrase type, ...). Remarque: il faut conserver de forcer la destruction en utilisation ligne de commandes ("force"=true)


Des applications de démo simple seront proposées en exemple pour chaque extension.
Une application de démo sera proposée en exemple. Par exemple, un gestionnaire de course sportive (voir groupe [[UltraTeam]]).

Revision as of 16:25, 10 January 2019

Encadrant : Didier Donsez, Anthony Gourgeon.

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

Liste non exhaustive et non priorisée des extensions (au générateur et à JDL) à développer et à contribuer auprès de la communauté (via le marketplace).

  • Bug fixes à puisser dans https://github.com/jhipster/generator-jhipster/issues
  • Intégration authentification CAS (c'est ce que nous utilisons dans les universités)
  • Intégration d'une blockchain de consortium Hyperledger (via JPA ?)
  • Ajout d'utilitaires bases de données (docker-compose pour les backups periodiques, interface d'admin type phpmyadmin)
  • Ajout d'un composant de paiement [1] (frontend) et d'un client feign vers stripe.com dans le backend
  • Ajout de composants de paiement (Paypal, Cartes de crédit ...)
  • Intégration d'un chatbot Rasa.io
  • Optimisation des transferts d'images de type ImageBlob (caching client, etag, vignette)
  • Ajout d'un ClusteredFileStorage pour les stockage des images côté backend.
  • Traduction automatique des messages i18n ?
  • Traduction automatique des valeurs des champs texte des entités
  • Ajout de nouveaux backends BD
  • Amélioration du client Swagger UI (OpenAPI2.0 et OpenAPI3.0)
  • Multi-thèmes Dashboard
    • SBAdmin 2
    • Gentella
    • Ngx-Admin (lien), Nebulla (lien)
  • Gestion de Content Delivery Network type AWS S3.
  • 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é.
  • Intégration de chatbots open-source (Rasa.ai par exemple) ou commerciaux.
  • 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 d'un container Vitess à JHipster (JPARepository)
  • Ajout d'un container 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)
  • Intégration de Intel Clear Containers
  • Ajouter une confirmation textuelle pour la suppression d'une entité (exemple, le nom de l'entité, une phrase type, ...).

Remarque: il faut conserver de forcer la destruction en utilisation ligne de commandes ("force"=true)

Des applications de démo simple seront proposées en exemple pour chaque extension.