Internes Referenzprojekt
Status: Intern eingesetzte Anwendung mit dokumentiertem Weiterentwicklungsbedarf.
Fachlicher Schwerpunkt: Individuelle Python-Software, kontrollierte Datenverarbeitung und KI-gestützte Entwicklung.
eur_ledger unterstützt die Aufbereitung von Einnahmen, Ausgaben und weiteren Geschäftsvorgängen im Ingenieurbüro Marschner. Die Anwendung verbindet strukturierte Eingaben mit einer lokalen Datenbank, nachvollziehbaren Prüfungen und wiederholbar erzeugbaren Berichten.
Als internes Referenzprojekt zeigt sie, wie KGM fachliche Anforderungen in wartbare Software übersetzt: mit klaren Zuständigkeiten, überprüfbaren Verarbeitungsschritten und einer kontrollierten Weiterentwicklung. KI unterstützt die Entwicklungsarbeit; fachliche Entscheidungen und die Abnahme bleiben beim Menschen.
Eigenes Softwareprojekt besprechen
Ausgangslage
Zur Vorbereitung betrieblicher Auswertungen müssen Belege, Zahlungen und Zuordnungen zusammenpassen. Dabei reicht es nicht, Werte zu erfassen: Ein erneuter Import darf vorhandene Daten nicht unbemerkt verdoppeln. Änderungen an zusammengehörigen Daten müssen konsistent bleiben. Und ein Bericht muss erkennen lassen, auf welchem Datenbestand er beruht.
eur_ledger bearbeitet diese Anforderungen in einem begrenzten internen Anwendungsfall. Das Projekt bietet damit einen konkreten Rahmen, um Datenmodellierung, Importregeln und Qualitätssicherung zusammenzuführen.
Ziel
Ziel ist eine nachvollziehbare Verarbeitung von der strukturierten Eingabe bis zur Auswertung. Fachliche Regeln sollen verständlich dokumentiert, getrennt von der Bedienoberfläche umgesetzt und gezielt prüfbar sein.
Ein tragfähiges Ergebnis bedeutet für dieses Projekt:
- Eingaben werden nach definierten Regeln geprüft und zugeordnet.
- Bereits importierte Quellen bleiben identifizierbar.
- Zusammengehörige Datenänderungen besitzen eine ausdrücklich festgelegte Transaktionsgrenze.
- Berichte entstehen aus dem gespeicherten Datenbestand.
- Änderungen an Datenmodell und Anwendung werden versioniert und geprüft.
Lösungsansatz
Die Anwendung wird über eine Kommandozeile bedient. Geschäftsvorgänge lassen sich manuell erfassen oder aus einer strukturierten Excel-Datei importieren. Die Daten werden in einer lokalen SQLite-Datenbank gespeichert. Daraus erzeugt eur_ledger Monats-, Quartals- und Jahresberichte sowie XLSX-Dateien und Unterlagen zur Übergabe an die Steuerberatung.
Der Import unterscheidet zwischen einem Probelauf und einer tatsächlichen Übernahme. Importdiagnosen helfen, auffällige Datensätze zu erkennen und zu prüfen. Ein Probelauf schreibt keine importierten Buchungsdaten dauerhaft, bildet derzeit aber noch nicht alle Prüfungen gegen bereits vorhandene Daten ab. Er ersetzt deshalb nicht die Kontrolle des tatsächlichen Importergebnisses.
Architektur und Technologien
Das Architekturmodell zeigt die angestrebte Aufteilung von eur_ledger. Es unterscheidet vorhandene Bausteine, den geplanten Bankimport und optionale Erweiterungen. Die technische Trennung ist heute teilweise umgesetzt.

Heute umgesetzt
Kommandozeile und Excel-Import erschließen die fachlichen Abläufe. Anwendungsdienste koordinieren Verarbeitung und Validierung und legen Transaktionsgrenzen fest. Eine Unit of Work stellt die Datenbanksitzung bereit und führt das Speichern oder Zurücknehmen zusammengehöriger Änderungen aus. Berichte und Exporte machen die gespeicherten Daten auswertbar.
Python und Typer bilden die Grundlage der Kommandozeile. SQLModel und SQLAlchemy verbinden die Anwendung mit SQLite. Änderungen am Datenbankschema werden ausdrücklich über Alembic-Migrationen ausgeführt. Linux beziehungsweise WSL ist die primäre Entwicklungsumgebung.
Die Entkopplung ist noch nicht vollständig: Schnittstellenverträge sind teilweise vorhanden, fachliche Modelle teilweise mit SQLModel verbunden. Einzelne Berichte greifen direkt auf die Datenbanksitzung zu.
Zielbild und mögliche Weiterentwicklung
Der geplante Bankimport soll Bankdaten über einen Eingangsadapter in die vorhandenen Importabläufe einbringen. Für den direkten Abruf bei einer Bank kann zusätzlich ein ausgehender Bank-API-Client erforderlich werden. Die Einordnung richtet sich danach, wer einen Anwendungsfall startet und welche externe Schnittstelle die Anwendung dafür aufruft.
REST-API, zeitgesteuerte Aufgaben sowie weitere Ausgabe- und Speicheranbindungen sind Erweiterungsoptionen. Neue Adapter sollen vorhandene fachliche Abläufe nutzen können. Dazu gehört, die Schnittstellenverträge weiter auszubauen und die Fachlogik stärker von der technischen Umsetzung zu lösen.
Engineering und Qualität
Zusammengehörige Änderungen gemeinsam absichern
Ein dokumentiertes Testbeispiel verbindet zwei Schritte in einem gemeinsamen Ablauf: eine Eingangsrechnung anlegen und die zugehörige Zahlungsinformation erfassen. Es werden Zahlungsinformationen gespeichert; eine Banküberweisung wird nicht ausgelöst.

Beide Änderungen nutzen dieselbe Unit of Work – eine technische Einheit, die eine gemeinsame Datenbanksitzung bereitstellt und das Speichern oder Zurücknehmen ausführt. Bei erfolgreichem Abschluss werden beide Änderungen gemeinsam gespeichert. Der alternative Fehlerfall setzt nach beiden vorbereiteten Änderungen und vor dem gemeinsamen Speichern an: Nach erfolgreicher Rücknahme bleibt keine der beiden neuen Änderungen dauerhaft gespeichert.
Eine fehlgeschlagene Rücknahme darf nicht als erfolgreich gemeldet werden. Das abstrahierte Testbeispiel belegt diesen gemeinsam abgegrenzten Ablauf, keine allgemeine Fehlerfreiheit oder vollständige Atomarität aller Importmodi. Eigenständige öffentliche Serviceaufrufe besitzen jeweils eigene Transaktionen; ihre bloße Abfolge ergibt noch keine gemeinsame Transaktion.
Auch beim erneuten Excel-Import ist die Herkunft entscheidend. Eine unveränderte, bereits importierte Quellzeile wird übersprungen. Wird dieselbe Quellzeile verändert, meldet die Anwendung einen Konflikt, statt den vorhandenen Datensatz stillschweigend zu überschreiben. Gleiche Beträge oder ähnliche Belegangaben allein gelten dagegen nicht als sicherer Nachweis einer Dublette.
Automatisierte Tests werden durch Typprüfung, statische Codeprüfung und einheitliche Formatierung ergänzt. Architekturentscheidungen und Änderungen am Datenbankschema werden dokumentiert. Reviews prüfen den Zusammenhang zwischen Auftrag, Umsetzung, Tests und Dokumentation.
KI-gestützte Entwicklung mit klarer Verantwortung
Im Entwicklungsprozess unterstützt KI die Analyse, Umsetzung, Prüfung und Dokumentation. Die Arbeit beginnt mit einem abgegrenzten Auftrag und festgelegten Grenzen. Änderungen werden anschließend anhand ihres tatsächlichen Inhalts und der zugehörigen Prüfungen bewertet.
Über Architektur, fachliche Regeln und die Übernahme von Änderungen entscheidet KGM. Die hier beschriebene KI-Unterstützung betrifft den Entwicklungsprozess; sie ist keine KI-basierte Buchungsentscheidung innerhalb von eur_ledger.
Ergebnis und übertragbare Kompetenz
Der dokumentierte Projektstand umfasst strukturierte Importe, manuelle Erfassung, Berichte und Exporte. Der technische Kompetenznachweis liegt insbesondere in der Verbindung von Datenmodell, ausdrücklich geregelten Transaktionen, nachvollziehbarer Herkunft importierter Daten und automatisierten Fehlerfallprüfungen.
Diese Arbeitsweise ist auch für andere individuelle Anwendungen relevant: beispielsweise wenn technische Büros oder kleine Unternehmen Daten aus Tabellen übernehmen, fachliche Prüfregeln abbilden oder wiederkehrende Auswertungen automatisieren möchten. Welche Teile übertragbar sind, wird für den jeweiligen Anwendungsfall gesondert geprüft.
Bewusste Grenzen
eur_ledger ist ein internes Referenzprojekt und wird nicht als öffentliches Buchhaltungsprodukt angeboten. Es besitzt keine steuerliche, rechtliche oder GoBD-Zertifizierung und ersetzt keine steuerliche Beratung.
Eine automatische Bankanbindung, ein automatischer Bankabgleich und die elektronische Abgabe von Steuererklärungen gehören nicht zum hier dargestellten Funktionsstand. Auch automatische Abschreibungsbuchungen sind nicht umgesetzt.
Die Darstellung zeigt abstrahierte Abläufe. Reale Buchhaltungsdaten, interne Betriebsinformationen und der vollständige Quellcode werden nicht veröffentlicht. Die vorhandenen Tests belegen konkrete geprüfte Fälle; sie sind keine Garantie für allgemeine Fehlerfreiheit.
Vom internen Projekt zur individuellen Lösung
Ein eigenes Softwareprojekt beginnt mit Ihren Daten, Abläufen und fachlichen Anforderungen. Gemeinsam lässt sich klären, welche Verarbeitungsschritte sinnvoll automatisiert werden können und woran ein belastbares Ergebnis erkennbar ist.
Die Leistung Individuelle Softwareentwicklung beschreibt den Rahmen für eine mögliche Zusammenarbeit.
Der Fachbeitrag Wartbare Software statt schneller Lösungen vertieft die Bedeutung einer durchdachten Struktur.



