Jaraco Bills – Eine AI-generierte Rechnungsverwaltung
In den letzten Wochen haben wir einen spannenden Prototyp entwickelt, den wir mit AI-Unterstützung gebaut haben: Jaraco Bills. Ziel war es, mit modernen Prompt-Driven-Development- und AI-Technologien einen unserer Geschäftsprozesse zu verbessern bzw. neu zu gestalten.
Von der Idee zur Anwendung – mit Prompt Engineering
Am Anfang stand eine ganz konkrete Herausforderung:
Wir suchten ein Tool zur E-Rechnungsstellung, das einfach für uns funktioniert – ohne viel Drumherum, aber trotzdem mit den nötigen Funktionen die es uns ermöglichen, unsere Rechnungsdaten mit AI auswertbar zu machen. Doch was wir fanden, war entweder zu überladen, zu teuer oder so minimalistisch, dass es unseren Anforderungen nicht gerecht wurde.
Also fassten wir den Entschluss:
Wir bauen selbst ein Tool. Und zwar mit Hilfe von GenAI.
So entstand Jaraco Bills – ein AI-generiertes Front- und Backend, mit dem wir die neuen Werkzeuge und Möglichkeiten, die uns GenAI bietet, evaluieren konnten. Das Projekt zeigt, wie moderne Prompt-Driven-Development – und AI-Technologien gemeinsam ein praxistaugliches System schaffen können.
Das Frontend wurde mit bold.new entwickelt – ausschließlich über Prompt Engineering. Bei der Gestaltung der UI stand für uns die Unterstützung unserer eigenen Arbeitsweise im Vordergrund. Wir wollten eine Software, die unseren Prozess ideal abbildet und für unsere Mitarbeitenden einfach zu bedienen ist.
Ein weiteres Ziel war es, Rechnungsdaten mittels AI auswertbar zu machen – hierfür wurde ein Chatbot integriert, der mit einem self-hosted LLM kommunizieren kann.
Natürlich sollte die Anwendung modern gestaltet sein und auf möglichst allen Geräten zuverlässig und benutzerfreundlich funktionieren.
Das Backend entstand mithilfe von Claude Code (Anthropic) auf Basis eines Spring-Boot-Kotlin-Backend-Templates, welches unsere Code-Guidelines und Architekturvorgaben enthält.
Was wir gelernt haben
Die Bedeutung eines guten Basisprojekts
Das Basisprojekt ist entscheidend. Es gibt nicht nur den technischen Rahmen vor (z. B. Logging, Error Handling, Struktur, Code First), sondern auch den Kontext, in dem die AI arbeiten kann. Die Verwendung eines minimalistischen, klar dokumentierten Basisprojekts bietet den Vorteil, dass der generierte Service sich an bereits existierende Services anlehnt, welche die Code-Guidelines bzw. Best Practices beinhalten. Das erleichtert es den Entwicklern, die generierte Lösung zu verstehen und später auch weiterzuentwickeln.
Code Review & Git-Synchronisierung
Auch AI-Code braucht Reviews – und zwar nicht nur hinsichtlich der Syntax, sondern auch in Bezug auf Architektur, Sicherheit und Wartbarkeit. Die Verwendung von Git erlaubt es uns, die Änderungen der AI sauber nachzuvollziehen und manuell zu korrigieren bzw. zu verbessern.
Prompt Engineering mit Bedacht
Ein wiederkehrender Pain Point: Kontextgröße. Gerade bei umfangreichem Code müssen Prompts so gestaltet sein, dass sie token-sparend bleiben. Das heißt: relevante Imports, minimale, aber verständliche Beschreibungen, Fokus auf einzelne Funktionen.
Insbesondere beim Refactoring von generiertem Code kam bold.new oft an seine Grenzen. So wurde beispielsweise das Umbenennen von Variablen mehrfach nicht korrekt durchgeführt. Dies ist besonders bei der Verwendung von TypeScript und JSON problematisch, da solche Fehler oft erst im Test oder zur Laufzeit auffallen.
Tests mit Sinn
Guter Code ist nur die halbe Miete – wir brauchen auch sinnvolle Tests. Dabei stellt sich die Frage: Wie testet man AI-generierten Code automatisiert?
Auch hier ist das richtige Setup entscheidend: realistische Testdaten, klare Erwartungen und ein Fokus auf die zentralen Logikpfade.
Nächste Schritte
- AI-gestütztes Testen evaluieren – Können Claude & Co. uns auch bei der Testgenerierung unterstützen? Welche anderen Werkzeuge stehen zur Verfügung und wie integrieren wir sie sinnvoll in den Entwicklungsprozess mit GenAI?
- Das Basisprojekt weiter verfeinern – Je robuster die Vorlage, desto besser die Ergebnisse. Können durch Hidden Prompts bessere Resultate erzielt werden?
- Deployment-Pipelines aufbauen – Von der Generierung bis zum Rollout: automatisiert und nachvollziehbar. Dafür evaluieren wir unter anderem: separates DevOps-Repo vs. K8s-Templates im Projekt, sowie Helm oder Kustomize?
- Kontexthandling verbessern – z. B. durch Code-Splitting oder RAG (Retrieval-Augmented Generation), damit auch große Projekte in die AI-Kontextfenster passen.
- Ausstehende Funktionalität ergänzen – etwa die Integration von Keycloak zur rollenbasierten Authentifizierung sowie die Bereitstellung eines MCP-Servers zur Anbindung der Rechnungsfunktionalität und zur strukturierten Bereitstellung relevanter Daten für eine einfache Interaktion über das LLM.🚀
Fazit & Call to Action
Jaraco Bills ist für uns mehr als nur ein Showcase. Es ist ein praktischer Beweis dafür, dass Prompt-Driven-Development, AI und DevOps erfolgreich zusammenspielen können.
Wir stehen am Anfang einer spannenden Entwicklung!
Wenn Sie interessiert sind, Software an Ihre Prozesse anzupassen – anstatt Ihre Prozesse an die Software:
Kontaktieren Sie uns für eine individuelle, kostenlose Erstberatung – oder testen Sie Jaraco Bills selbst! Anfragen hierzu an info@jaraco.de.