Files
medi-customers/README.md
2025-03-17 19:57:41 +01:00

3.6 KiB

medisoftware Kundensuche

Eine Flask-basierte Webanwendung zur Suche in Kundendaten aus einer CSV-Datei.

Features

  • Live-Suche während der Eingabe
  • Suche nach:
    • Kundennummer
    • Name (Vor- und Nachname)
    • Fachrichtung
    • Ort
  • Klickbare Links für:
    • Telefonnummern (tel:)
    • E-Mail-Adressen (mailto:)
    • Adressen (Google Maps)
    • Kundennummern (KKBefe-System)
  • Responsive Design mit Bootstrap
  • Docker-Container-Unterstützung

Technische Details

Technologie-Stack

  • Backend: Python 3.11 mit Flask
  • Frontend: HTML, CSS, JavaScript, Bootstrap 5
  • Datenverarbeitung: pandas, numpy
  • Container: Docker

Projektstruktur

medi-customers/
├── app.py              # Flask-Anwendung
├── templates/          # HTML-Templates
│   └── index.html     # Hauptseite
├── spezexpo.csv       # Kundendaten
├── requirements.txt   # Python-Abhängigkeiten
├── Dockerfile        # Docker-Konfiguration
└── .dockerignore     # Docker-Ignore-Datei

Datenformat

Die Anwendung erwartet eine CSV-Datei (spezexpo.csv) mit folgenden Spalten:

  • Nummer (Kundennummer)
  • Vorname
  • Nachname
  • Fachrichtung
  • Strasse
  • PLZ
  • Ort
  • Tel
  • mail

Installation

Lokale Entwicklung

  1. Python 3.11 installieren
  2. Virtuelle Umgebung erstellen und aktivieren:
    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
    
  3. Abhängigkeiten installieren:
    pip install -r requirements.txt
    
  4. Anwendung starten:
    python app.py
    

Docker-Container

  1. Docker installieren
  2. Container bauen:
    docker build -t medi-customers .
    
  3. Container starten:
    docker run -d -p 5000:5000 --name medi-customers medi-customers
    

API-Endpunkte

GET /

  • Rendert die Hauptseite
  • Sucht nach Kunden basierend auf dem Query-Parameter
  • Parameter: q (Suchbegriff)
  • Returns: JSON-Array mit gefundenen Kunden

Frontend-Funktionen

Suchfunktion

  • Live-Suche mit 300ms Debounce
  • Minimale Suchlänge: 2 Zeichen
  • Suche wird bei Enter-Taste sofort ausgeführt
  • createPhoneLink(): Erstellt tel:-Links mit führender 0
  • createEmailLink(): Erstellt mailto:-Links
  • createAddressLink(): Erstellt Google Maps-Links
  • createCustomerLink(): Erstellt KKBefe-System-Links

Fehlerbehandlung

  • Logging für Backend-Fehler
  • Benutzerfreundliche Fehlermeldungen im Frontend
  • Graceful Degradation bei fehlenden Daten

Entwicklung

Debug-Modus

Die Anwendung läuft standardmäßig im Debug-Modus:

python app.py

Logging

  • Backend-Logs werden mit Python's logging-Modul erstellt
  • Log-Level: DEBUG
  • Logs werden in der Konsole ausgegeben

Wartung

Container-Verwaltung

# Container stoppen
docker stop medi-customers

# Container starten
docker start medi-customers

# Container-Logs anzeigen
docker logs medi-customers

# Container entfernen
docker rm medi-customers

Datenaktualisierung

  1. CSV-Datei aktualisieren
  2. Container neu bauen und starten:
    docker stop medi-customers
    docker build -t medi-customers .
    docker run -d -p 5000:5000 --name medi-customers medi-customers
    

Sicherheit

  • Alle externen Links öffnen sich in neuen Tabs
  • Sicherheitsattribute für externe Links (noopener, noreferrer)
  • Input-Validierung im Backend
  • Fehlerbehandlung für ungültige Daten

Browser-Kompatibilität

Die Anwendung wurde getestet mit:

  • Chrome (neueste Version)
  • Firefox (neueste Version)
  • Edge (neueste Version)
  • Safari (neueste Version)