# Elpatrons Datumsrechner Diese moderne Python-Webanwendung (Flask) ermöglicht verschiedene Datumsberechnungen über eine übersichtliche Weboberfläche: ## Demo Datumsrechner Live: [https://date.elpatron.me](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) 1. Python 3.8+ installieren 2. Abhängigkeiten installieren: ```bash pip install -r requirements.txt ``` ## Starten der App ```bash 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**: ```bash 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: ```bash 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 ## 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. ## 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](https://de.wikipedia.org/wiki/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 Es werden keine IP-Adressen oder sonstigen persönlichen Daten gespeichert, lediglich die Zahl der Aufrufe der Funktionen in einer kumulierten Darstellung. ## Lizenz Dieses Projekt steht unter der [MIT-Lizenz](LICENSE). --- (c) 2025 [Markus Busche](https://digitalcourage.social/@elpatron)