Files
keyVerwaltung/README.md
2026-05-19 20:22:18 +02:00

75 lines
2.6 KiB
Markdown

# Verwaltung fuer Tuerchips, Parkkarten und Poolfahrzeuge
## Voraussetzungen
- Python 3.10 oder neuer
## Installation
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
## Starten
```bash
python3 app.py
```
Die Anwendung ist danach unter `http://127.0.0.1:5006` erreichbar.
## Start mit Docker
```bash
docker compose up --build
```
Die Anwendung ist danach ebenfalls unter `http://127.0.0.1:5006` erreichbar.
## Funktionen
- Anmeldung fuer Bearbeiter und Admins
- Admin kann Bearbeiter und weitere Admins anlegen
- Bearbeiter vergeben ihr Passwort bei der ersten Anmeldung selbst
- Admin kann Passwort-Reset fuer Bearbeiter ausloesen
- Admin kann vorhandene Bestandsdaten per CSV importieren
- User anlegen
- Ausgabe von Tuerchips, Parkkarten und Poolfahrzeugen
- Rueckgabe von Tuerchips, Parkkarten und Poolfahrzeugen
- Uebersicht mit Suche und letzten Bewegungen
- Einfache Logdatei mit Datum, Medium und bearbeitendem Mitarbeiter
- Anzeige der letzten Logeintraege im Webinterface
- Bearbeiter wird auch in der Datenbankhistorie gespeichert
- Doppelte Kennungen fuer Tuerchips und Parkkarten werden bei der Ausgabe verhindert
## Datenhaltung
- Die Daten werden lokal in `inventory.db` als SQLite-Datenbank gespeichert.
- Die einfache Dateiprotokollierung wird in `inventory.log` geschrieben.
## Anmeldung
- Beim ersten Start wird automatisch ein Admin mit dem Benutzernamen `admin` angelegt.
- Dieser Admin hat zunaechst kein Passwort und wird bei der ersten Anmeldung direkt zur Passwortvergabe gefuehrt.
- Der Bearbeiter in der Historie und im Log ist immer der aktuell angemeldete Benutzer.
## Import vorhandener Daten
- Nur Admins koennen den Import ueber den Menuepunkt `Import` aufrufen.
- Der Import akzeptiert eine CSV-Datei mit Semikolon als Trennzeichen oder alternativ direkte Eingabe im Textfeld.
- Die CSV-Datei muss UTF-8 kodiert sein.
- Erwartetes Format pro Zeile:
```text
User;Typ;Kennung;Aktion
```
- Beispiel:
```text
Max Mustermann;Tuerchip;CHIP-1001;Import
Erika Muster;Parkkarte;PARK-2001;Import
```
- Eine optionale Kopfzeile `User;Typ;Kennung;Aktion` wird automatisch erkannt und uebersprungen.
- Unterstuetzte Typen sind `Tuerchip`, `Parkkarte` und `Poolfahrzeug`.
- Bei der Ausgabe von `Poolfahrzeug` wird das Kennzeichen als Kennung erfasst.
- Die Aktion `Import` uebernimmt vorhandene aktive Bestandsdaten in die Datenbank.
- Falls ein User noch nicht existiert, wird er beim Import automatisch angelegt.
- Bereits vergebene Kennungen oder widerspruechliche aktive Zuordnungen werden gesammelt als Fehler angezeigt; der Import wird erst ausgefuehrt, wenn keine Fehler mehr vorhanden sind.