2025-07-22 16:55:55 +02:00
# Elpatrons Datumsrechner
2025-07-22 16:36:22 +02:00
2025-07-22 16:55:55 +02:00
Diese moderne Python-Webanwendung (Flask) ermöglicht verschiedene Datumsberechnungen über eine übersichtliche Weboberfläche:
2025-07-22 16:36:22 +02:00
2025-07-23 12:59:53 +02:00
## Demo
Datumsrechner Live: [https://date.elpatron.me ](https://date.elpatron.me )
2025-07-22 16:55:55 +02:00
## Funktionen
2025-07-22 16:36:22 +02:00
2025-07-23 12:35:39 +02:00
- 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`
2025-07-22 16:55:55 +02:00
## Installation (lokal)
2025-07-22 16:36:22 +02:00
1. Python 3.8+ installieren
2. Abhängigkeiten installieren:
2025-07-23 12:59:53 +02:00
```bash
pip install -r requirements.txt
```
2025-07-22 16:36:22 +02:00
## Starten der App
2025-07-23 12:59:53 +02:00
```bash
2025-07-22 16:36:22 +02:00
python app.py
```
2025-07-22 16:55:55 +02:00
Die App ist dann unter http://localhost:5000 erreichbar.
2025-07-23 11:12:09 +02:00
## Statistik-Dashboard (/stats) & Passwortschutz
Das Dashboard ist mit einem statischen Passwort geschützt, das über die Umgebungsvariable `STATS_PASSWORD` gesetzt wird.
2025-07-23 12:59:53 +02:00
Beispiel (PowerShell):
2025-07-23 11:12:09 +02:00
```powershell
$env:STATS_PASSWORD = "meinSicheresPasswort"
python app . py
```
2025-07-23 12:59:53 +02:00
Für Docker:
2025-07-23 11:12:09 +02:00
```powershell
$env:STATS_PASSWORD = "meinSicheresPasswort"
docker run -e STATS_PASSWORD = $env:STATS_PASSWORD -p 5000 : 5000 datumsrechner
```
2025-07-23 11:01:18 +02:00
## Docker (empfohlen für Produktion)
2025-07-22 16:55:55 +02:00
2025-07-23 11:01:18 +02:00
Die App läuft im Container mit dem WSGI-Server **Gunicorn** :
2025-07-22 16:55:55 +02:00
2025-07-23 12:59:53 +02:00
```bash
2025-07-22 16:55:55 +02:00
docker build -t datumsrechner .
docker run -p 5000:5000 datumsrechner
```
2025-07-23 11:01:18 +02:00
- Gunicorn startet automatisch (siehe Dockerfile)
- Empfohlen für produktiven Einsatz
2025-07-23 11:47:53 +02:00
### 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:**
2025-07-23 12:59:53 +02:00
2025-07-23 11:47:53 +02:00
```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` :
2025-07-23 12:59:53 +02:00
2025-07-23 11:47:53 +02:00
```yaml
services :
datumsrechner :
build : .
ports :
- "5000:5000"
environment :
- STATS_PASSWORD=deinPasswort
volumes :
- ./log:/app/log
```
Starte mit:
2025-07-23 12:59:53 +02:00
```bash
2025-07-23 11:47:53 +02:00
docker-compose up --build
```
2025-07-22 16:55:55 +02:00
## Entwicklung & Hinweise
2025-07-23 12:59:53 +02:00
2025-07-22 16:55:55 +02:00
- 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
2025-07-23 12:43:36 +02:00
## Automatisierte Tests
Automatisierte Tests sind mit pytest möglich:
```powershell
pip install -r requirements . txt
pytest test_app . py
```
2025-07-23 12:59:53 +02:00
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 )