2.6 KiB
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)
- Python 3.8+ installieren
- 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):
$env:STATS_PASSWORD = "meinSicheresPasswort"
python app.py
Für Docker:
$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:
docker run -e STATS_PASSWORD=deinPasswort -p 5000:5000 -v ${PWD}/log:/app/log datumsrechner
docker-compose Beispiel
Erstelle eine Datei docker-compose.yml
:
services:
datumsrechner:
build: .
ports:
- "5000:5000"
environment:
- STATS_PASSWORD=deinPasswort
volumes:
- ./log:/app/log
Starte mit:
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.
(c) 2025 Markus Busche
Automatisierte Tests
Automatisierte Tests sind mit pytest möglich:
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.