127 lines
3.9 KiB
Markdown
127 lines
3.9 KiB
Markdown
# MYP Platform - 3D-Drucker Reservierungssystem
|
|
|
|
Ein Reservierungssystem für 3D-Drucker, das automatisch TP-Link Tapo P110 Smart Plugs steuert, um die Stromversorgung von Druckern basierend auf den reservierten Zeitslots zu verwalten.
|
|
|
|
## Features
|
|
|
|
- Reservierung von 3D-Druckern für bestimmte Zeiträume
|
|
- Automatische Steuerung der TP-Link Tapo P110 Smart Plugs
|
|
- Echtzeit-Überwachung von laufenden Druckaufträgen
|
|
- Administrationsbereich für Druckerverwaltung
|
|
- Benutzerauthentifizierung und Autorisierung
|
|
- Statistiken zu Druckaufträgen und Materialverbrauch
|
|
- Dark Mode für eine angenehme Nutzung bei schlechten Lichtverhältnissen
|
|
- Responsive Design für verschiedene Gerätegrößen
|
|
|
|
## Technologie-Stack
|
|
|
|
- **Backend**: Python 3.11 mit Flask
|
|
- **Frontend**: HTML/CSS/JavaScript mit Tailwind CSS
|
|
- **Datenbank**: SQLite mit SQLAlchemy ORM
|
|
- **Authentifizierung**: Flask-Login
|
|
- **Hardware-Integration**: PyP100 für Tapo Smart Plug Steuerung
|
|
- **Automatisierung**: Integrierter Job-Scheduler für Drucker-Steuerung
|
|
|
|
## Systemanforderungen
|
|
|
|
- Python 3.11+
|
|
- Node.js und npm (für Tailwind CSS)
|
|
- Netzwerkzugang zu TP-Link Tapo P110 Smart Plugs
|
|
- Unterstützte Betriebssysteme: Linux, Windows, macOS
|
|
|
|
## Installation
|
|
|
|
1. **Repository klonen**:
|
|
```bash
|
|
git clone <repository-url>
|
|
cd myp-platform
|
|
```
|
|
|
|
2. **Python-Abhängigkeiten installieren**:
|
|
```bash
|
|
cd backend/app
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
3. **Node-Abhängigkeiten installieren und CSS bauen**:
|
|
```bash
|
|
npm install
|
|
npm run build:css
|
|
```
|
|
|
|
4. **Datenbank initialisieren**:
|
|
```bash
|
|
python init_db.py
|
|
```
|
|
|
|
5. **Server starten**:
|
|
```bash
|
|
# Standardstart
|
|
python app.py
|
|
|
|
# Oder mit spezifischem Port (empfohlen)
|
|
python app.py --port=5000
|
|
```
|
|
|
|
## API Endpunkte
|
|
|
|
| Methode | Endpunkt | Beschreibung |
|
|
|---------|------------------------|--------------------------------------------------------|
|
|
| GET | /api/jobs | Gibt alle Jobs (für Admins) oder eigene Jobs zurück |
|
|
| GET | /api/jobs/active | Gibt alle aktiven Druckaufträge zurück |
|
|
| GET | /api/jobs/{id} | Gibt Details zu einem bestimmten Job zurück |
|
|
| POST | /api/jobs | Erstellt eine neue Druckerreservierung |
|
|
| GET | /api/printers | Gibt alle verfügbaren Drucker zurück |
|
|
|
|
## Scheduler
|
|
|
|
Das System enthält einen eingebauten Scheduler, der automatisch:
|
|
- Drucker einschaltet, wenn ein Auftrag beginnt
|
|
- Drucker ausschaltet, wenn ein Auftrag endet
|
|
- Den Status von Druckern aktualisiert
|
|
- Die Auftragsstatistiken sammelt
|
|
|
|
## Konfiguration
|
|
|
|
Die Konfiguration erfolgt über die Datei `config/settings.py`. Wichtige Einstellungen umfassen:
|
|
- Datenbankpfad
|
|
- Tapo-Zugangsdaten
|
|
- Drucker-Konfigurationen
|
|
- Logging-Einstellungen
|
|
- Webserver-Einstellungen
|
|
|
|
## CSS-System
|
|
|
|
Die Anwendung nutzt Tailwind CSS für das Styling mit separaten Dateien für Light- und Dark-Mode.
|
|
|
|
### Tailwind Build
|
|
|
|
```bash
|
|
# CSS bauen
|
|
npm run build:css
|
|
|
|
# CSS im Watch-Modus (für Entwicklung)
|
|
npm run watch:css
|
|
```
|
|
|
|
## Sicherheit
|
|
|
|
- Nur angemeldete Benutzer können Druckaufträge erstellen
|
|
- Nur Besitzer eines Druckauftrags können diesen verwalten
|
|
- Nur Administratoren haben Zugriff auf alle Jobs und Systemeinstellungen
|
|
- Passwörter werden mit bcrypt gesichert
|
|
|
|
## Fehlerbehandlung und Logging
|
|
|
|
Das System führt detaillierte Logs in folgenden Kategorien:
|
|
- App-Log (allgemeine Anwendungslogs)
|
|
- Auth-Log (Authentifizierungsereignisse)
|
|
- Jobs-Log (Druckauftragsoperationen)
|
|
- Printer-Log (Druckerstatusänderungen)
|
|
- Scheduler-Log (Automatisierungsaktionen)
|
|
- Error-Log (Fehlerprotokollierung)
|
|
|
|
## Entwicklung
|
|
|
|
Diese Anwendung ist für den Offline-Betrieb konzipiert und verwendet keine externen CDNs.
|
|
Weitere Informationen zur Entwicklungsumgebung finden Sie in der `TAILWIND_SETUP.md`. |