|
|
@@ -0,0 +1,128 @@
|
|
|
+# 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.
|