specs.md 3.4 KB

GCOutline – Spezifikation

Projektübersicht

GCOutline ist ein webbasiertes Forderungsmanagement-Tool für ein Autohaus. Es basiert auf Python mit FastAPI als Backend, jinja2 für Templates und htmx für dynamische Interaktionen. Die Datenhaltung erfolgt in einer Microsoft SQL Server-Datenbank. Als UI-Framework wird CoreUI verwendet. Die Authentifizierung und Benutzergruppensteuerung erfolgt über LDAP.


Technologie-Stack

  • Backend: Python 3.x, FastAPI
  • Frontend: jinja2, htmx, CoreUI (HTML/CSS/JS)
  • Datenbank: Microsoft SQL Server
  • Auth: LDAP (Active Directory)
  • Deployment: Docker (optional), Gunicorn/Uvicorn
  • API: REST (JSON)

Hauptfunktionen

1. Login & Berechtigungen

  • Authentifizierung über LDAP.
  • Benutzergruppensteuerung (z. B. Standort, Rolle).
  • Nach erfolgreichem Login: Weiterleitung zur Forderungsliste.

2. Forderungsliste (Offene Posten)

  • Anzeige einer Tabelle mit Forderungen:
    • Sortierung: Standard nach Fälligkeit (aufsteigend).
    • Filter:
    • Standort
    • Verkäufer
    • Kunde
    • Fälligkeit (Datum)
    • Textsuche über:
    • Verkäufer
    • Kunde
    • Fahrzeug
    • Fahrgestellnummer
    • Rechnungsnummer
    • Bemerkung
  • Pagination / Infinite Scroll:
    • Initial: 100 Einträge.
    • Beim Scrollen: dynamisches Nachladen weiterer Einträge via htmx.
  • Export-Funktion:
    • CSV-Export.
    • Excel-Export (XLSX).

3. Detailansicht

  • Eigene Seite mit eindeutiger URI:
    • /detail/{id} oder /detail/{rechnungsnummer}
  • Inhalte:
    • Rechnungsdetails (Forderung, Betrag, Fälligkeit).
    • Bereits geleistete Zahlungen.
    • Kaufhistorie des Kunden.
  • Eingabefelder:
    • Bemerkung (Textfeld).
    • Wiedervorlage-Datum (Datepicker).
  • Speicherung:
    • Bemerkung + Wiedervorlage in separater Tabelle mit:
    • Zeitstempel
    • Benutzer-Info (aus LDAP)
    • Verknüpfung zur Forderung.
  • Export-Funktionen auf Detailseite:
    • Microsoft Word (DOCX) mit Template und Platzhaltern für Tabellenfelder.
    • E-Mail-Erstellung via mailto: mit Link zur Detailseite.
  • Navigation:
    • Beim Verlassen der Detailseite (Speichern oder Zurück) wird die zuletzt verwendete Filterung und Sortierung wiederhergestellt.

UI/UX Anforderungen

  • CoreUI als Basis-Template.
  • Responsive Design.
  • Dropdown-Filter + Textsuche prominent.
  • Infinite Scroll für Performance.
  • Detailansicht als eigene Seite.
  • Export-Buttons klar sichtbar.

Datenbank-Design (vereinfacht)

Tabellen

  • Forderungen
    • ID (PK)
    • Kunde_ID
    • Verkäufer_ID
    • Fahrzeug
    • Fahrgestellnummer
    • Rechnungsnummer (Unique)
    • Betrag
    • Fälligkeit
    • Status
  • Kunden
    • ID
    • Name
    • Historie
  • Zahlungen
    • ID
    • Forderung_ID
    • Betrag
    • Datum
  • Bemerkungen
    • ID
    • Forderung_ID
    • Benutzer
    • Bemerkung
    • Wiedervorlage_Datum
    • Zeitstempel

Sicherheitsanforderungen

  • LDAP-Authentifizierung.
  • Rollenbasierte Zugriffskontrolle.
  • HTTPS für alle Verbindungen.
  • SQL-Injection-Schutz (ORM oder Prepared Statements).

Performance

  • Lazy Loading (htmx).
  • Pagination für große Datenmengen.
  • Indexierung der Filterfelder in SQL Server.

Offene Punkte

  • Word-Template: Soll ein Autohaus-Briefkopf und Platzhalter für Rechnungsdaten enthalten.
  • E-Mail: Nur mailto:-Link mit Betreff und URL zur Detailseite.
  • Logging & Monitoring: vorerst nicht erforderlich.