# Elpatrons Datumsrechner Diese moderne Python-Webanwendung (Flask) ermöglicht verschiedene Datumsberechnungen über eine übersichtliche Weboberfläche: ## Funktionen - Anzahl der Tage zwischen zwei Daten - Anzahl der Werktage zwischen zwei Daten - Anzeige des Wochentags eines Datums - Datum plus/minus X Tage - Datum plus/minus X Werktage - Datum plus/minus X Wochen/Monate - Kalenderwoche zu Datum - Start-/Enddatum einer Kalenderwoche eines Jahres - Statistik-Dashboard mit Passwortschutz unter `/stats` ## Installation (lokal) 1. Python 3.8+ installieren 2. Abhängigkeiten installieren: ``` pip install -r requirements.txt ``` ## Starten der App ``` python app.py ``` Die App ist dann unter http://localhost:5000 erreichbar. ## Statistik-Dashboard (/stats) & Passwortschutz Das Dashboard ist mit einem statischen Passwort geschützt, das über die Umgebungsvariable `STATS_PASSWORD` gesetzt wird. **Beispiel (PowerShell):** ```powershell $env:STATS_PASSWORD = "meinSicheresPasswort" python app.py ``` **Für Docker:** ```powershell $env:STATS_PASSWORD = "meinSicheresPasswort" docker run -e STATS_PASSWORD=$env:STATS_PASSWORD -p 5000:5000 datumsrechner ``` ## Docker (empfohlen für Produktion) Die App läuft im Container mit dem WSGI-Server **Gunicorn**: ``` docker build -t datumsrechner . docker run -p 5000:5000 datumsrechner ``` - Gunicorn startet automatisch (siehe Dockerfile) - Empfohlen für produktiven Einsatz ### Log-Verzeichnis mounten (Logs auf dem Host speichern) Um die Logdateien außerhalb des Containers zu speichern, kannst du das log-Verzeichnis mounten: **PowerShell-Beispiel:** ```powershell docker run -e STATS_PASSWORD=deinPasswort -p 5000:5000 -v ${PWD}/log:/app/log datumsrechner ``` ### docker-compose Beispiel Erstelle eine Datei `docker-compose.yml`: ```yaml services: datumsrechner: build: . ports: - "5000:5000" environment: - STATS_PASSWORD=deinPasswort volumes: - ./log:/app/log ``` Starte mit: ```powershell docker-compose up --build ``` ## Entwicklung & Hinweise - Die HTML-Templates liegen im Ordner `templates/` (Trennung von Logik und Darstellung) - Das Projekt ist auf Gitea gehostet: https://gitea.elpatron.me/elpatron/datecalc - Modernes, responsives Design mit Akkordeon und Icons ## Lizenz Dieses Projekt steht unter der [MIT-Lizenz](LICENSE). --- (c) 2025 Markus Busche ## Automatisierte Tests Automatisierte Tests sind mit pytest möglich: ```powershell pip install -r requirements.txt pytest test_app.py ``` Die Tests prüfen u.a. die Erreichbarkeit der App, die wichtigsten Funktionen und den Schutz vor XSS-Angriffen.