67 lines
2.3 KiB
Markdown
67 lines
2.3 KiB
Markdown
# Verwaltung fuer Tuerchips und Parkkarten
|
|
|
|
## 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:5000` 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 und Parkkarten
|
|
- Rueckgabe von Tuerchips und Parkkarten
|
|
- 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` und `Parkkarte`.
|
|
- 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.
|