Difference between revisions of "Contributions open-source au projet JHipster"

From air
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Encadrant : Didier Donsez.
 
Encadrant : Didier Donsez.
   
  +
En 2020 et 2021, plusieurs extensions à JHipster ont été réalisées des INFO 5A (voir https://github.com/contribution-jhipster-uga).
Ce projet propose de développer plusieurs contributions au projet open-source [[JHipster]]
 
  +
  +
A savoir:
 
* Intégration de [https://fullcalendar.io/ FullCalendar] (voir l'application [https://www.motorsports-database.racing/#/ Motorsport Database] et [https://github.com/sudheerj/generator-jhipster-primeng/search?q=fullcalendar&unscoped_q=fullcalendar l'intégration dans PrimeNG])
 
* Intégration de iCal4J au générateur [https://fullcalendar.io/ FullCalendar]
 
** https://github.com/ical4j/ical4j
 
** https://github.com/ical4j/ical4j/wiki/Examples
 
* Ajout de l'indexation full-text dans les types Blob avec [[Apache Tika]] en fonction de leur content-type
 
* Optimisation des transferts d'images de type ImageBlob (caching client, etag, vignette)
 
* Ajout de l'indexation full-text par [[OCR]] dans les types ImageBlob avec [[Tesseract]] OCR (voir [https://linuxhint.com/tess4j_maven_java_tutorial/ Tess4J])
 
* Ajout de la détection d'objets dans les types ImageBlob avec [[ImageAI]]
 
* Intégration de charts ([https://swimlane.github.io/ngx-charts/#/ngx-charts ngx-charts]) dans les entités (coté frontend et coté backend entry point /api/entity_name/chart)
  +
* Intégration [[HarperDB]] https://harperdb.io/
  +
* Intégration Mantine https://github.com/mantinedev/mantine
  +
* Intégration ReactFlow https://reactflow.dev
  +
  +
Ce projet propose de maintenir ces extensions à JHispter, de les porter pour les autres canevas client (React, Vue) et développer de nouvelles extensions qui seront contribées au projet open-source [[JHipster]].
  +
  +
Ce projet vous permettra de rentrer dans le coeur des technologies (frontend, backend) et de ne pas rester qu'un simple utilisateur de celles-ci.
   
 
Dépôt Github : https://github.com/contribution-jhipster-uga
 
Dépôt Github : https://github.com/contribution-jhipster-uga
   
   
  +
=Quelques idées d'extension=
=Liste priorisée=
 
  +
* [[Conteneurs pour le Pentest]]
==Priorité 1==
 
  +
* Intégration de Discord4J dans le backend Spring https://www.baeldung.com/spring-discord4j-bot
 
* Amélioration du générateur de chatbot Rasa.io (en relation avec l'indexation full text)
 
* Amélioration du générateur de chatbot Rasa.io (en relation avec l'indexation full text)
 
* Intégration d'un "tour" : candidats [https://github.com/tnicola/ngx-joyride|NGX JOYRIDE], [https://isaacplmann.github.io/ngx-tour/|NGX TOUR], ...
 
* Intégration d'un "tour" : candidats [https://github.com/tnicola/ngx-joyride|NGX JOYRIDE], [https://isaacplmann.github.io/ngx-tour/|NGX TOUR], ...
Line 20: Line 39:
 
* Ajout d'un composant d'édition Rich Text (comme TinyMCE ou http://textangular.com/) pour l'édition et l'affichage de TextBlob d'une entité.
 
* Ajout d'un composant d'édition Rich Text (comme TinyMCE ou http://textangular.com/) pour l'édition et l'affichage de TextBlob d'une entité.
   
Réalisé en 2020 (voir https://github.com/contribution-jhipster-uga):
 
* Intégration de [https://fullcalendar.io/ FullCalendar] (voir l'application [https://www.motorsports-database.racing/#/ Motorsport Database] et [https://github.com/sudheerj/generator-jhipster-primeng/search?q=fullcalendar&unscoped_q=fullcalendar l'intégration dans PrimeNG])
 
* Intégration de iCal4J au générateur [https://fullcalendar.io/ FullCalendar]
 
** https://github.com/ical4j/ical4j
 
** https://github.com/ical4j/ical4j/wiki/Examples
 
* Ajout de l'indexation full-text dans les types Blob avec [[Apache Tika]] en fonction de leur content-type
 
* Optimisation des transferts d'images de type ImageBlob (caching client, etag, vignette)
 
* Ajout de l'indexation full-text par [[OCR]] dans les types ImageBlob avec [[Tesseract]] OCR (voir [https://linuxhint.com/tess4j_maven_java_tutorial/ Tess4J])
 
* Ajout de la détection d'objets dans les types ImageBlob avec [[ImageAI]]
 
* Intégration de charts ([https://swimlane.github.io/ngx-charts/#/ngx-charts ngx-charts]) dans les entités (coté frontend et coté backend entry point /api/entity_name/chart)
 
 
==Priorité 2==
 
 
* Terminaison du [https://github.com/contribution-jhipster-uga/generator-jhipster/tree/angular-material générateur Angular Material]
 
* Terminaison du [https://github.com/contribution-jhipster-uga/generator-jhipster/tree/angular-material générateur Angular Material]
 
* Bloquage des authentifications répétées en échec (brute force) avec un container [[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 un container [[Fail2ban]]. ([https://www.google.fr/search?client=firefox-b&dcr=0q=fail2ban+spring|lien]
Line 44: Line 51:
   
 
* Démonstrateur Téléconsultation avec JHipster, Jitsi et WebRTC : l'objectif est de développer une plateforme open-source de téléconsultation (médecin, mécanicien, plombier, coiffeur, soutien scolaire, tutorat polytech “confiné” ...) avec prise de rendez-vous. La plateforme sera basée sur JHipster, FullCalendar, Stripe, Paypal et Jitsi (WebRTC https://jitsi.org/ ). Les frontends mobiles pourront être développés avec Flutter (https://flutter.dev ). Le backend pourra être déployé avec Kubernetes sur un CaaS public (demande de crédits Azure en cours). Cette plateforme pourra être ajoutée au showroom de JHipster et l’objet d’une présentation à la conf JHipster
 
* Démonstrateur Téléconsultation avec JHipster, Jitsi et WebRTC : l'objectif est de développer une plateforme open-source de téléconsultation (médecin, mécanicien, plombier, coiffeur, soutien scolaire, tutorat polytech “confiné” ...) avec prise de rendez-vous. La plateforme sera basée sur JHipster, FullCalendar, Stripe, Paypal et Jitsi (WebRTC https://jitsi.org/ ). Les frontends mobiles pourront être développés avec Flutter (https://flutter.dev ). Le backend pourra être déployé avec Kubernetes sur un CaaS public (demande de crédits Azure en cours). Cette plateforme pourra être ajoutée au showroom de JHipster et l’objet d’une présentation à la conf JHipster
 
==Priorité 3==
 
 
* Ajout de [[Weavescope]]
 
* Ajout de [[Weavescope]]
 
* Ajout des types enums dans Liquibase
 
* Ajout des types enums dans Liquibase
Line 63: Line 68:
 
* Ajout [https://dzone.com/articles/chaos-monkey-for-spring-boot-microservices|Chaos Monkey for Spring Boot Microservices]
 
* Ajout [https://dzone.com/articles/chaos-monkey-for-spring-boot-microservices|Chaos Monkey for Spring Boot Microservices]
   
  +
=Liste non exhaustive et non priorisée=
 
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 à puiser dans https://github.com/jhipster/generator-jhipster/issues
 
 
* Génération de classes pour [https://projects.spring.io/spring-shell/ commandes shell] pour inspecter/modifier les entités (générées).
 
* Génération de classes pour [https://projects.spring.io/spring-shell/ commandes shell] pour inspecter/modifier les entités (générées).
 
* Intégration authentification [https://www.apereo.org/projects/cas CAS]
 
* Intégration authentification [https://www.apereo.org/projects/cas CAS]
Line 104: Line 107:
   
 
Des applications de démo simple seront proposées en exemple pour chaque extension.
 
Des applications de démo simple seront proposées en exemple pour chaque extension.
 
=Equipe et rôles=
 
* LATTARD Alexis : Chef de projet
 
* SOLVERY Tom : Scrum master
 
* CHASSEGUET Corentin : Développeur
 
* SALA Ergi : Développeur
 
* ARNOUX Thibaut : Développeur
 
* LORDEY Maxime : Développeur
 

Latest revision as of 10:32, 13 September 2023

Encadrant : Didier Donsez.

En 2020 et 2021, plusieurs extensions à JHipster ont été réalisées des INFO 5A (voir https://github.com/contribution-jhipster-uga).

A savoir:

Ce projet propose de maintenir ces extensions à JHispter, de les porter pour les autres canevas client (React, Vue) et développer de nouvelles extensions qui seront contribées au projet open-source JHipster.

Ce projet vous permettra de rentrer dans le coeur des technologies (frontend, backend) et de ne pas rester qu'un simple utilisateur de celles-ci.

Dépôt Github : https://github.com/contribution-jhipster-uga


Quelques idées d'extension


  • Génération de classes pour commandes shell pour inspecter/modifier les entités (générées).
  • Intégration authentification CAS
  • Ajout d'un ClusteredFileStorage pour les stockage des images côté backend.
  • Synchronisation du FileStorage avec des Drives cloud (OwnCloud, Google Drive, Dropbox, OneDrive, ...)
  • Traduction automatique des messages i18n ?
  • Traduction automatique des valeurs des champs texte des entités
  • Ajout de nouveaux backends BD
  • Intégration Push API (lien)
  • 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
  • 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)
  • Authentification FIDO (https://github.com/Mastercard/fido2-rp-spring)
  • Descripteurs docker-compose et k8s pour les distributions clusterisées de:
  • Keycloak theming (voir)


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