57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# Hellas – Bestand & WaWi
|
||
|
||
## Überblick
|
||
Dieses Repository enthält:
|
||
- **WaWi‑App** (Flask + SQLite) für Artikelverwaltung, Ausbuchen und Verkäufe.
|
||
- **Live‑Bestand Ansicht** (`index.html`) die den Bestand aus der WaWi‑API lädt.
|
||
- **Import‑Script** für Daten aus der ursprünglichen `hellas_bestand.html`.
|
||
|
||
## Struktur
|
||
- `wawi/app.py` – Flask‑App (CRUD, Ausbuchen, Verkäufe, Benutzerverwaltung)
|
||
- `wawi/templates/` – HTML‑Templates der WaWi‑App
|
||
- `wawi/static/` – Styles + Logo
|
||
- `wawi/hellas.db` – SQLite‑Datenbank (wird automatisch erstellt)
|
||
- `wawi/import_from_html.py` – Import aus `hellas_bestand.html`
|
||
- `index.html` – Live‑Bestand 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
|
||
```
|
||
|
||
## Live‑Bestand Ansicht (index.html)
|
||
`index.html` lädt den Bestand aus der WaWi‑App:
|
||
- API‑Proxy: `/wawi/proxy/bestand`
|
||
|
||
Wenn du diese Datei auf einem Webserver auslieferst, stelle sicher, dass die WaWi‑App unter `/wawi` erreichbar ist.
|
||
|
||
## Deployment (Kurz)
|
||
1) App nach `/var/www/hellas/wawi` kopieren
|
||
2) Gunicorn + systemd starten
|
||
3) Nginx Reverse‑Proxy auf `/wawi`
|
||
|
||
Für Produktion setze:
|
||
- `SECRET_KEY` (Session‑Cookie)
|
||
- `APP_USER`, `APP_PASSWORD` (Admin)
|
||
- optional `APP_API_KEY` (für direkten API‑Zugriff)
|
||
|