111 lines
2.6 KiB
Markdown
111 lines
2.6 KiB
Markdown
# 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. |