# Jaraco Bills -- Un système de gestion des factures généré par IA

Au cours des dernières semaines, nous avons développé un prototype passionnant avec l'aide de l'IA : **Jaraco Bills**. Notre objectif était d'améliorer et de repenser l'un de nos processus métiers en utilisant des technologies modernes de développement piloté par des invites et d'IA.

## De l'idée à l'application -- Avec l'ingénierie des invites

Nous avons commencé avec un défi très concret : nous cherchions un outil de facturation électronique qui fonctionne simplement pour nous -- sans trop de complexité, mais avec les fonctionnalités nécessaires pour rendre nos données de facturation analysables par l'IA. Cependant, ce que nous avons trouvé était soit **trop encombré**, **trop cher**, ou **si minimaliste** qu'il ne répondait pas à nos exigences.

Nous avons donc pris une décision :
**Nous allons construire notre propre outil. Avec l'aide de l'IA générative.**

Ainsi est né **Jaraco Bills** -- un frontend et un backend générés par IA qui nous ont permis d'évaluer les nouveaux outils et possibilités offerts par l'IA générative. Le projet montre comment les technologies modernes de développement piloté par des invites et d'IA peuvent ensemble créer un système pratique.

Le **frontend a été développé avec bold.new** -- exclusivement par **ingénierie des invites**. Lors de la conception de l'interface utilisateur, notre objectif était de soutenir notre propre flux de travail. Nous voulions un logiciel qui reflète idéalement notre processus et qui soit facile à utiliser pour nos employés.
Un autre objectif était de **rendre les données de facturation analysables par l'IA** -- pour cela, un **chatbot** a été intégré, capable de communiquer avec un **LLM auto-hébergé**.
Bien sûr, l'application devait être moderne et fonctionner **de manière fiable et conviviale sur autant d'appareils que possible**.

Le backend a été créé à l'aide de **Claude Code (Anthropic)** basé sur un **modèle de backend Spring Boot Kotlin** qui contient nos directives de codage et spécifications architecturales.

## Ce que nous avons appris

### L'importance d'un bon projet de base

Le projet de base est crucial. Il ne fournit pas seulement le cadre technique (par exemple, la journalisation, la gestion des erreurs, la structure, code-first), mais aussi le contexte dans lequel l'IA peut travailler. L'utilisation d'un projet de base minimaliste et bien documenté présente l'avantage que le service généré s'aligne sur les services existants qui contiennent les directives de codage et les meilleures pratiques. Cela facilite la compréhension et le développement ultérieur de la solution générée pour les développeurs.

### Revue de code et synchronisation Git

Le code généré par l'IA a également besoin de révisions -- non seulement pour la syntaxe, mais aussi pour l'architecture, la sécurité et la maintenabilité. L'utilisation de Git nous permet de suivre proprement les changements apportés par l'IA et de les corriger ou de les améliorer manuellement.

### Ingénierie des invites avec soin

Un point de douleur récurrent : **la taille du contexte**. En particulier avec du code volumineux, les invites doivent être conçues pour rester **économes en jetons**. Cela signifie : des imports pertinents, des descriptions minimales mais compréhensibles, un focus sur des fonctions individuelles.

En particulier, le **refactoring du code généré** a souvent atteint les limites de bold.new. Par exemple, le renommage des variables n'a souvent pas été effectué correctement. Cela est particulièrement problématique lors de l'utilisation de **TypeScript** et **JSON**, car de telles erreurs ne deviennent souvent apparentes que lors des tests ou à l'exécution.

### Tests significatifs

Un bon code n'est que la moitié du travail -- nous avons également besoin de tests significatifs. La question se pose : **Comment tester automatiquement le code généré par l'IA ?**
Ici aussi, la bonne configuration est cruciale : des données de test réalistes, des attentes claires et un focus sur les chemins logiques centraux.

## Prochaines étapes

- **Évaluer les tests assistés par IA** -- Claude & Co. peuvent-ils également nous aider dans la génération de tests ? Quels autres outils sont disponibles et comment les intégrons-nous de manière significative dans le processus de développement avec l'IA générative ?

- **Affiner le projet de base** -- Plus le modèle est robuste, meilleurs sont les résultats. Peut-on obtenir de meilleurs résultats grâce à des **invites cachées** ?

- **Construire des pipelines de déploiement** -- De la génération au déploiement : automatisé et traçable. Pour cela, nous évaluons, entre autres : **dépôt DevOps séparé vs. modèles K8s dans le projet**, ainsi que **Helm ou Kustomize ?**

- **Améliorer la gestion du contexte** -- par exemple, par **le fractionnement du code** ou **RAG (Retrieval-Augmented Generation)**, afin que les grands projets s'adaptent également aux fenêtres de contexte de l'IA.

- **Ajouter les fonctionnalités manquantes** -- telles que **l'intégration de Keycloak** pour l'authentification basée sur les rôles ainsi que la **fourniture d'un serveur MCP** pour connecter la fonctionnalité de facturation et fournir des données structurées pour une **interaction simple via le LLM**.

## Conclusion & Appel à l'action

**Jaraco Bills** est pour nous plus qu'une simple vitrine. C'est une preuve pratique que le **développement piloté par des invites, l'IA et le DevOps** peuvent fonctionner ensemble avec succès.

Nous sommes au début d'un développement passionnant !
Si vous êtes intéressé à **adapter le logiciel à vos processus** -- au lieu d'adapter vos processus au logiciel :

**Contactez-nous** pour une consultation initiale individuelle et gratuite -- ou testez **Jaraco Bills** vous-même ! Les demandes à ce sujet à info@jaraco.de.