Skip to content

Repository files navigation

ABV Buchungsverwaltungssystem

Ein doppeltes Buchführungssystem mit REST-API (FastAPI) und Web-Oberfläche (Streamlit).

Funktionen

  • Buchungen erfassen – manuell oder per Datei-Import (CSV, JSON)
  • Automatische Steuerbuchungen – MwSt-Gegenbuchungen (Vorsteuer/Umsatzsteuer) werden automatisch erzeugt
  • Bilanz – Aktiva/Passiva-Übersicht für einen beliebigen Stichtag
  • GuV – Gewinn- und Verlustrechnung für einen Zeitraum
  • Kontoblatt – Einzelkonto-Auszug mit allen Buchungen für ein gewähltes Konto
  • Umsatzsteuerbericht – MwSt-Auswertung nach Steuersatz
  • Dashboard – monatliche Auswertung mit Diagrammen und Gegenpartei-Analyse
  • Gründungsbilanz – einmalige Eröffnungsbilanz als Startpunkt

Voraussetzungen

  • Python 3.12+
  • uv (empfohlen) oder pip

Installation

# Abhängigkeiten installieren
uv sync
# oder
pip install -e .

Starten

Backend und Frontend müssen gleichzeitig laufen.

Backend (FastAPI):

uvicorn backend.main:app --reload

API läuft auf http://localhost:8000
Swagger-Dokumentation: http://localhost:8000/docs

Frontend (Streamlit):

cd frontend
streamlit run app.py

Oberfläche läuft auf http://localhost:8501

Projektstruktur

project/
├── backend/
│   ├── main.py          # FastAPI-Endpunkte
│   ├── models.py        # Pydantic-Datenmodelle
│   └── database.py      # SQLite-Datenbanklogik
├── frontend/
│   ├── app.py           # Streamlit-Einstiegspunkt (Navigation)
│   ├── 1 eingabe.py     # Buchungen erfassen & importieren
│   ├── 2 berichte.py    # Bilanz, GuV, Kontoblatt, Umsatzsteuerbericht
│   ├── 3 auswertung.py  # Dashboard / monatliche Auswertung
│   ├── 4 einstellungen.py  # Gründungsbilanz & Reset
│   └── 5 steuerbilanz.py   # Steuerbilanz (in Entwicklung)
├── commons/
│   └── references.py    # Kontenrahmen, MwSt-Sätze, API-URL
├── validators/
│   └── common.py        # Wiederverwendbare Validatoren (Datum, Betrag)
├── AI-Usage.md
└── pyproject.toml

Kontenrahmen

Typ Konten
Aktiva 1000 Kasse, 1200 Bank, 1400 Forderungen, 1600 Anlagevermögen, 9001 Vorsteuer
Passiva 3000 Eigenkapital, 3300 Verbindlichkeiten, 9000 Umsatzsteuer
Aufwand 4000 Wareneinkauf, 4100 Büromaterial, 4200 Marketing, 4300 Personalaufwand, 4400 Miete, 4500 Sonstige Aufwendungen, 4600 Abschreibungen
Ertrag 8000 Umsatzerlöse, 8100 Sonstige Erträge

Umsatzsteuersätze

  • 19 % (Standard)
  • 7 % (Ermäßigt)
  • 0 % (Steuerfrei)

Automatische Steuerbuchungen

Das System erzeugt automatisch UwSt-Gegenbuchungen:

  • Umsatzsteuer – wenn das Habenkonto 8000 oder 8100 ist und der UwSt-Satz > 0 %: zusätzliche Buchung auf Konto 9000
  • Vorsteuer – wenn das Sollkonto 4000–4600 ist und der UwSt-Satz > 0 %: zusätzliche Buchung auf Konto 9001

Beim Datei-Import kann zwischen automatischer Steuerbuchung und manuell enthaltenen Steuerzeilen gewählt werden.

Import-Format

CSV (, oder ; als Trennzeichen):

booking_date;debit_account;credit_account;partner_name;amount_net;vat_rate
2026-01-15;1200 Bank;8000 Umsatzerlöse;Kunde GmbH;1000.00;0.19

JSON:

{
  "bookings": [
    {
      "booking_date": "2026-01-15",
      "debit_account": "1200 Bank",
      "credit_account": "8000 Umsatzerlöse",
      "partner_name": "Kunde GmbH",
      "amount_net": 1000.00,
      "vat_rate": 0.19
    }
  ]
}

API-Endpunkte (Übersicht)

Methode Pfad Beschreibung
POST /import/openbalance Gründungsbilanz importieren
GET /import/openbalance/exists Gründungsbilanz vorhanden?
DELETE /reset Alle Daten zurücksetzen
POST /bookings Buchung erstellen
GET /bookings Buchungen abrufen (mit Filtern)
GET /bookings/exist Buchungen vorhanden?
POST /import/bookings Buchungen aus Datei importieren
GET /reports/balance Bilanz abrufen
GET /reports/guv GuV abrufen
GET /reports/kontoblatt Kontoblatt für ein Konto abrufen
GET /reports/umsatzsteuer Umsatzsteuerbericht abrufen
GET /reports/monthly Monatliche Auswertung

About

Studentisches Projekt im Bereich Buchhaltung (einfaches Buchungsverwaltungssystem)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages