📝 Commit Details:
This commit is contained in:
@ -1,118 +0,0 @@
|
||||
# MYP - Manage Your Printer
|
||||
|
||||
Ein System zur Verwaltung und Steuerung von 3D-Druckern über TP-Link Tapo P110 Smart Plugs.
|
||||
|
||||
## Funktionsumfang
|
||||
|
||||
- Benutzer- und Rechteverwaltung (Admin/User)
|
||||
- Verwaltung von Druckern und Smart Plugs
|
||||
- Reservierungssystem für Drucker (Zeitplanung)
|
||||
- Automatisches Ein-/Ausschalten der Drucker über Smart Plugs
|
||||
- Statistikerfassung für Druckaufträge
|
||||
- **NEU**: Kiosk-Modus für automatischen Start auf Raspberry Pi
|
||||
|
||||
## Systemvoraussetzungen
|
||||
|
||||
- Raspberry Pi 4 (oder kompatibel)
|
||||
- Python 3.11+
|
||||
- Internetzugang für die Installation (danach offline nutzbar)
|
||||
- TP-Link Tapo P110 Smart Plugs im lokalen Netzwerk
|
||||
|
||||
## Installation
|
||||
|
||||
### Standardinstallation
|
||||
|
||||
1. Repository klonen oder Dateien auf den Raspberry Pi kopieren
|
||||
|
||||
2. Abhängigkeiten installieren:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. Anwendung starten:
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
|
||||
Die Anwendung läuft dann unter http://localhost:5000 oder unter der IP-Adresse des Raspberry Pi.
|
||||
|
||||
### Kiosk-Modus Installation
|
||||
|
||||
Für den vollautomatischen Start im Kiosk-Modus (z.B. für IHK-Prüfungen):
|
||||
|
||||
```bash
|
||||
chmod +x setup.sh
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
Detaillierte Anweisungen finden sich in der [Kiosk-Setup Anleitung](KIOSK-SETUP.md).
|
||||
|
||||
## Erster Start
|
||||
|
||||
Beim ersten Start wird eine leere Datenbank angelegt. Es muss ein erster Administrator angelegt werden:
|
||||
|
||||
```
|
||||
POST /api/create-initial-admin
|
||||
```
|
||||
|
||||
Mit folgendem JSON-Body:
|
||||
```json
|
||||
{
|
||||
"email": "admin@example.com",
|
||||
"password": "sicheres-passwort",
|
||||
"name": "Administrator"
|
||||
}
|
||||
```
|
||||
|
||||
## API-Dokumentation
|
||||
|
||||
Die Anwendung stellt folgende REST-API-Endpunkte bereit:
|
||||
|
||||
### Authentifizierung
|
||||
|
||||
- `POST /auth/register` - Neuen Benutzer registrieren
|
||||
- `POST /auth/login` - Anmelden (erstellt eine Session für 7 Tage)
|
||||
|
||||
### Drucker
|
||||
|
||||
- `GET /api/printers` - Alle Drucker auflisten
|
||||
- `GET /api/printers/<printerId>` - Einzelnen Drucker abrufen
|
||||
- `POST /api/printers` - Neuen Drucker anlegen
|
||||
- `DELETE /api/printers/<printerId>` - Drucker löschen
|
||||
|
||||
### Jobs/Reservierungen
|
||||
|
||||
- `GET /api/jobs` - Alle Reservierungen abrufen
|
||||
- `POST /api/jobs` - Neue Reservierung anlegen
|
||||
- `GET /api/jobs/<jobId>` - Reservierungsdetails abrufen
|
||||
- `POST /api/jobs/<jobId>/finish` - Job beenden (Plug ausschalten)
|
||||
- `POST /api/jobs/<jobId>/abort` - Job abbrechen (Plug ausschalten)
|
||||
- `POST /api/jobs/<jobId>/extend` - Endzeit verschieben
|
||||
- `GET /api/jobs/<jobId>/status` - Aktuellen Plug-Status abrufen
|
||||
- `GET /api/jobs/<jobId>/remaining-time` - Restzeit in Sekunden abrufen
|
||||
- `DELETE /api/jobs/<jobId>` - Job löschen
|
||||
|
||||
### Benutzer
|
||||
|
||||
- `GET /api/users` - Alle Benutzer auflisten (nur Admin)
|
||||
- `GET /api/users/<userId>` - Einzelnen Benutzer abrufen
|
||||
- `DELETE /api/users/<userId>` - Benutzer löschen (nur Admin)
|
||||
|
||||
### Sonstiges
|
||||
|
||||
- `GET /api/stats` - Globale Statistik (Druckzeit, etc.)
|
||||
- `GET /api/test` - Health-Check
|
||||
|
||||
## Sicherheitshinweise
|
||||
|
||||
- Diese Anwendung speichert alle Zugangsdaten direkt im Code und in der Datenbank.
|
||||
- Die Anwendung sollte ausschließlich in einem geschützten, lokalen Netzwerk betrieben werden.
|
||||
- Es wird keine Verschlüsselung für die API-Kommunikation verwendet.
|
||||
|
||||
## Wartung und Troubleshooting
|
||||
|
||||
- Die Logdatei `myp.log` enthält alle wichtigen Ereignisse und Fehler
|
||||
- Die Datenbank wird in `database/myp.db` gespeichert
|
||||
- Häufig auftretende Probleme und Lösungen finden sich in [COMMON_ERRORS.md](COMMON_ERRORS.md)
|
||||
- Zukünftige Entwicklungspläne sind in [ROADMAP.md](ROADMAP.md) dokumentiert
|
||||
|
Reference in New Issue
Block a user