3.9 KiB
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
-
Repository klonen:
git clone <repository-url> cd myp-platform
-
Python-Abhängigkeiten installieren:
cd backend/app pip install -r requirements.txt
-
Node-Abhängigkeiten installieren und CSS bauen:
npm install npm run build:css
-
Datenbank initialisieren:
python init_db.py
-
Server starten:
# 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
# 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
.