OBJECTIFS

L'objectif principal de cette nouvelle mission est de configurer et de générer plusieurs types de documents commerciaux pour permettre aux utilisateurs d'ajouter ou de supprimer certains blocs dans le document, et d'y ajouter une prévisualisation en fonction de ce paramétrage. Certains projets des utilisateurs peuvent recenser beaucoup de données, et la génération peut durer plusieurs secondes. Il ne faut pas bloquer l'utilisateur pendant la génération. Certaines actions clés de l'utilisateur au sein de l'ERP, doivent générer automatiquement un document pré-paramétré.

  • Angular
  • Spring
  • JasperReports
  • Quarkus
  • Quark
  • GWT
  • Docker
  • Selenium
  • Qute
  • Paged.js
  • HTML

MISSION

Dans le cadre de cette mission de développement full-stack au sein de la DSI d'un client historique, ESENS intervient sur un projet de génération de documents commerciaux comprenant plusieurs types de documents : proposition commerciale, synthèse de projet et facture.

  • Audit de l'existant

    La possibilité de générer de documents commerciaux existe déjà au sein de l'ERP de notre client, mais la fonctionnalité utilise des technologies limitées pour les besoins fonctionnels de ses utilisateurs. Le front-end est développé en GWT, le back-end en Spring, et le templating en Jasper. Auparavant, il n'était pas possible de désynchroniser la génération de document sans modifier profondément l'existant, et il était difficilement paramétrable et pré-visualisable via Jasper. C'est pourquoi nous avons décidé de tout reprendre.

  • Choix des technologies

    Pour le paramétrage des documents, nous utilisons un front-end tierce existant en Angular pour sa maintenance. Pour la désynchronisation de la génération de document, nous avons décidé d'utiliser les jobs de Quark pour son implémentation complète. Pour la génération en elle même, nous avons créé une toute nouvelle application externe en Quarkus pour sa légèreté et sa modernité. Pour le templating nous utilisons Qute, facile d'utilisation, modulable et customizable pour des fonctions spécifiques très facilement. Pour afficher un document et non une page web au format standard, on a ajouté l'utilitaire Paged.js. Il nous permet d'utiliser l'HTML pour la prévisualisation. Pour générer un PDF à partir de cette page HTML en Paged.js, nous utilisons un conteneur Docker Selenium pour simuler l'affichage du document, et sa génération de PDF.

STRATEGIE

L'équipe qui développe le projet est composé de quatre développeurs, dont un Tech Lead, et d'un Product Owner. Nous utilisons une méthodologie Agile sur des sprints de 3 semaines. L'équipe travaille également sur d'autre projets en parallèle. Fonctionnellement, le besoin a été découpé en User Stories pour nous permettre de développer ce projet au fur et à mesure. Le projet est à présent développé, qualifié, en production et il est utilisé à l'heure actuelle. Il continue cependant d'évoluer afin d'ajouter et de complexifier des blocs paramétrables.

RETOUR