3.9 KiB
Elpatrons Datumsrechner
Diese moderne Python-Webanwendung (Flask) ermöglicht verschiedene Datumsberechnungen über eine übersichtliche Weboberfläche:
Demo
Datumsrechner Live: https://date.elpatron.me
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
Progressive Web App (PWA)
Elpatrons Datumsrechner ist als PWA installierbar (z.B. auf Android/iOS-Homescreen oder Desktop). Die App funktioniert offline für die Startseite und statische Ressourcen, die Datumsberechnung bleibt serverseitig.
- Manifest und Service Worker sind integriert
- App-Icon und Theme-Color für Homescreen
- Installation über Browser-Menü ("Zum Startbildschirm hinzufügen")
Entwicklung & Hinweise
- Die HTML-Templates liegen im Ordner
templates/
(Trennung von Logik und Darstellung) - Das Projekt ist auf Codeberg gehostet: https://codeberg.org/elpatron/datecalc
- Modernes, responsives Design mit Akkordeon und Icons
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.
Hinweise
Motivation
Finde mal eine Datumsrechner- Webapp, die nicht völlig Werbe- und Tracking verseucht ist! Da ich sowas häufiger mal brauche, hab ich mir eine eigene gemacht.
Vibe Coding
Dieses Projekt wurde zu nahezu 100% mit Unterstützung künsticher Intelligenz (Vibe Coding) erstellt. Das Grundgerüst war nach ca. 45 Minuten fertig gestellt, insgesamt hat die Entwicklung des Projekts ca. 4 Stunden Zeit beansprucht.
Statistik-Erfassung, Logging
Es werden keine IP-Adressen oder sonstigen persönlichen Daten gespeichert, lediglich die Zahl der Aufrufe der Funktionen in einer kumulierten Darstellung. Die Logdatei enthält nur Einträge der letzten sieben Tage.
Lizenz
Dieses Projekt steht unter der MIT-Lizenz.
(c) 2025 Markus Busche