Contributions open-source au projet JHipster

Encadrant : Didier Donsez.

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

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

=Liste priorisée=

Priorité 1

 * Intégration de FullCalendar (voir l'application Motorsport Database et l'intégration dans PrimeNG)
 * Intégration de iCal4J au générateur FullCalendar
 * https://github.com/ical4j/ical4j
 * https://github.com/ical4j/ical4j/wiki/Examples
 * Ajout du SEO (JSON-LD) voir et voir
 * 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 Tess4J)
 * Ajout de la détection d'objets dans les types ImageBlob avec ImageAI
 * Amélioration du générateur de chatbot Rasa.io (en relation avec l'indexation full text)
 * Intégration d'un "tour" : candidats |NGX JOYRIDE, |NGX TOUR, ...

Priorité 2

 * Terminaison du générateur Angular Material
 * Bloquage des authentifications répétées en échec (brute force) avec un container Fail2ban. (|lien
 * Composant de dessin pour les champs de type ImageBlob
 * Composant de SignaturePad pour les champs de type ImageBlob :
 * voir http://lathonez.com/angular2-signaturepad-demo/
 * voir https://dimpu.github.io/angular2-signature-pad/
 * Amélioration du plugin Leaflet avec Leaflet Draw http://leaflet.github.io/Leaflet.draw/docs/leaflet-draw-latest.html
 * 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é.
 * Amélioration du générateur de chatbot Rasa.io (en relation avec l'indexation full text)
 * Intégration d'un module Discord.
 * Intégration de Postman pour les tests des endpoints de l'API
 * Intégration de charts (ngx-charts) dans les entités (coté frontend et coté backend entry point /api/entity_name/chart)
 * Clear-Site-Data Header pour le logout (https://www.baeldung.com/spring-security-clear-site-data-header)
 * Intégration de Spring Data Apache Ignite (voir https://www.baeldung.com/apache-ignite-spring-data)
 * Démonstration d'un Q/A live en mode Chat (voir pubble.io) avec les websockets.

Priorité 3

 * Ajout de Weavescope
 * Ajout des types enums dans Liquibase
 * Renforcement du typage des enums SQL (avec liquibase) voir
 * Intégration du protocole pub-sub MQTT (avec/sans TLS). Ajout du docker-compose file pour Mosquitto ou RabbitMQ
 * Exemple: https://github.com/CampusIoT/campusiot-app/blob/47c9e860c6e807372f4a3914d9eb5d0340ee28b9/src/main/java/fr/imag/campusiot/app/service/impl/MqttSinkImpl.java
 * Intégration du protocole pub-sub AMQP.
 * Intégration d'un "tour" : candidats |NGX JOYRIDE, |NGX TOUR, ...
 * Bloquage des authentifications répétées en échec (brute force) avec un container Fail2ban. (|lien
 * Banissement des adresses IP au moyen de FreeGeoIP (|Dockerfile)
 * Générateur d'un backend ou d'un microservice en Elixir (utilisation de Phoenix Swagger) pour l'API.
 * Génération des quatre composants d'entités avec FuelUI http://fuelinteractive.github.io/fuel-ui/
 * Ajout de Knative à l'extension Kubernetes
 * Ajout d'Istio
 * Ajout d'une [Non Blocking State Machine|https://dzone.com/articles/drafta-non-blocking-state-machine] sur une entité possédant un champs Enum (correspondant à l'état de la machine : pensez à ajouter des dates pour chaque changement d'état).
 * Intégration de React Admin https://github.com/marmelab/react-admin
 * Ajout |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 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
 * OpenTSDB, InfluxDB
 * 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:
 * Kafka
 * RabbitMQ
 * MySQL https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/
 * Postgres
 * MongoDB
 * Cassandra
 * Keycloak theming (voir)

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