3.6 KiB
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
Installation
Lokale Entwicklung
- Python 3.11 installieren
- Virtuelle Umgebung erstellen und aktivieren:
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- Abhängigkeiten installieren:
pip install -r requirements.txt
- Anwendung starten:
python app.py
Docker-Container
- Docker installieren
- Container bauen:
docker build -t medi-customers .
- Container starten:
docker run -d -p 5000:5000 --name medi-customers medi-customers
API-Endpunkte
GET /
- Rendert die Hauptseite
GET /search
- 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
Link-Generierung
createPhoneLink()
: Erstellt tel:-Links mit führender 0createEmailLink()
: Erstellt mailto:-LinkscreateAddressLink()
: Erstellt Google Maps-LinkscreateCustomerLink()
: 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
- CSV-Datei aktualisieren
- 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)