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
- 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.