Initial commit

This commit is contained in:
Bjoern Welker
2026-01-30 08:55:14 +01:00
commit 81a1ed7eef
17 changed files with 2824 additions and 0 deletions

56
README.md Normal file
View File

@@ -0,0 +1,56 @@
# Hellas Bestand & WaWi
## Überblick
Dieses Repository enthält:
- **WaWiApp** (Flask + SQLite) für Artikelverwaltung, Ausbuchen und Verkäufe.
- **LiveBestand Ansicht** (`index.html`) die den Bestand aus der WaWiAPI lädt.
- **ImportScript** für Daten aus der ursprünglichen `hellas_bestand.html`.
## Struktur
- `wawi/app.py` FlaskApp (CRUD, Ausbuchen, Verkäufe, Benutzerverwaltung)
- `wawi/templates/` HTMLTemplates der WaWiApp
- `wawi/static/` Styles + Logo
- `wawi/hellas.db` SQLiteDatenbank (wird automatisch erstellt)
- `wawi/import_from_html.py` Import aus `hellas_bestand.html`
- `index.html` LiveBestand Ansicht (ruft `/wawi/proxy/bestand`)
## WaWi lokal starten
```bash
cd wawi
python3 -m venv .venv
source .venv/bin/activate
pip install flask
python app.py
```
Standardzugriff: Login über Benutzerverwaltung (siehe unten).
## Benutzerverwaltung
Beim ersten Start wird **ein Admin** aus ENV erzeugt:
- `APP_USER` (default: `admin`)
- `APP_PASSWORD` (default: `admin`)
Passwörter werden **gehasht** gespeichert.
Über `/users` können weitere Benutzer angelegt und Passwörter zurückgesetzt werden.
## Import aus hellas_bestand.html
```bash
cd wawi
python import_from_html.py /pfad/zu/hellas_bestand.html --truncate
```
## LiveBestand Ansicht (index.html)
`index.html` lädt den Bestand aus der WaWiApp:
- APIProxy: `/wawi/proxy/bestand`
Wenn du diese Datei auf einem Webserver auslieferst, stelle sicher, dass die WaWiApp unter `/wawi` erreichbar ist.
## Deployment (Kurz)
1) App nach `/var/www/hellas/wawi` kopieren
2) Gunicorn + systemd starten
3) Nginx ReverseProxy auf `/wawi`
Für Produktion setze:
- `SECRET_KEY` (SessionCookie)
- `APP_USER`, `APP_PASSWORD` (Admin)
- optional `APP_API_KEY` (für direkten APIZugriff)