# Mercedes-Benz TBA Marienfelde - 3D-Drucker Management System ## Übersicht Ein umfassendes Management-System für 3D-Drucker in der Mercedes-Benz Technischen Berufsausbildung (TBA) Marienfelde. Das System ermöglicht die zentrale Verwaltung, Überwachung und Steuerung von 3D-Druckern und deren Stromversorgung. ## Hauptfunktionen ### 🖨️ Drucker-Management - Zentrale Verwaltung aller 3D-Drucker - Echtzeit-Statusüberwachung - Druckjob-Verwaltung und -Scheduling - Benutzer- und Rechteverwaltung ### ⚡ **NEU: Steckdosen-Test-System** Sichere Testfunktion für Ausbilder und Administratoren zur Steuerung der Druckerstromversorgung: - **Sicherheitsprüfungen**: Automatische Warnungen bei aktiven Druckjobs - **Risikobewertung**: Intelligente Analyse basierend auf Stromverbrauch und Gerätestatus - **Force-Modus**: Notfallsteuerung mit erweiterten Sicherheitsabfragen - **Audit-Trail**: Vollständige Protokollierung aller Testaktivitäten - **Echtzeit-Monitoring**: Live-Status aller konfigurierten Steckdosen **Zugriff:** `/socket-test` (nur für Administratoren) ### 📊 Monitoring & Analytics - Live-Dashboard mit Druckerstatus - Energieverbrauchsüberwachung - Statistiken und Berichte - Fehlerprotokollierung ### 👤 Benutzer-System - Rollenbasierte Zugriffskontrolle - Gastanfragen für externe Nutzer - Admin-Bereich für Systemverwaltung - Session-Management mit automatischem Logout ## Technische Spezifikationen ### Backend - **Framework:** Flask (Python) - **Datenbank:** SQLite mit WAL-Modus - **ORM:** SQLAlchemy - **Authentifizierung:** Flask-Login - **API:** RESTful JSON-API ### Frontend - **Framework:** Vanilla JavaScript + Tailwind CSS - **Design:** Mercedes-Benz Corporate Design - **Responsive:** Mobile-first Design - **Interaktion:** AJAX-basierte Real-time Updates ### Hardware-Integration - **Steckdosen:** TP-Link Tapo P110 Smart Plugs - **Protokoll:** PyP100 für Tapo-Kommunikation - **Netzwerk:** Lokales Subnetz für Geräte-Kommunikation ## Installation ### Voraussetzungen - Python 3.8+ - Node.js 16+ (für Frontend-Build) - Netzwerkzugang zu den Steckdosen ### Setup ```bash # Repository klonen git clone cd backend # Python-Abhängigkeiten installieren pip install -r requirements.txt # Frontend-Abhängigkeiten installieren npm install # CSS kompilieren npm run build-css # Datenbank initialisieren python -c "from models import init_database; init_database()" # Anwendung starten python app.py ``` ### Erste Schritte 1. **Admin-Account erstellen**: Beim ersten Start wird automatisch ein Admin-Account erstellt 2. **Drucker hinzufügen**: Über das Admin-Panel Drucker und Steckdosen konfigurieren 3. **Benutzer verwalten**: Weitere Benutzer und Rollen zuweisen 4. **Steckdosen testen**: Über `/socket-test` die neue Testfunktionalität nutzen ## Konfiguration ### Umgebungsvariablen ```bash # Grundkonfiguration SECRET_KEY= DATABASE_PATH=database/app.db ENVIRONMENT=production # Steckdosen-Konfiguration TAPO_USERNAME= TAPO_PASSWORD= ``` ### Drucker-Steckdosen-Zuordnung Jeder Drucker kann mit einer Steckdose verknüpft werden: - **IP-Adresse** der Steckdose - **Benutzername/Passwort** für Authentifizierung - **MAC-Adresse** für eindeutige Identifikation ## Sicherheit ### Zugriffskontrolle - **CSRF-Schutz** für alle Formulare - **Session-basierte Authentifizierung** - **Rollenbasierte Berechtigungen** (Admin/User) - **Automatisches Session-Timeout** ### Steckdosen-Sicherheit - **Risikobewertung** vor jeder Aktion - **Automatische Warnungen** bei aktiven Jobs - **Force-Modus** nur mit expliziter Bestätigung - **Vollständige Audit-Logs** aller Aktionen ## API-Dokumentation ### Steckdosen-Test-Endpunkte ```http GET /api/printers/test/socket/{printer_id} ``` Detaillierter Status einer Steckdose mit Sicherheitsbewertung ```http POST /api/printers/test/socket/{printer_id}/control ``` Steckdose für Tests ein-/ausschalten mit Sicherheitsprüfungen ```http GET /api/printers/test/all-sockets ``` Übersicht aller Steckdosen mit Zusammenfassung Vollständige API-Dokumentation: [docs/STECKDOSEN_TEST_DOKUMENTATION.md](docs/STECKDOSEN_TEST_DOKUMENTATION.md) ## Projektstruktur ``` backend/ ├── app.py # Hauptanwendung ├── models.py # Datenmodelle ├── requirements.txt # Python-Abhängigkeiten ├── blueprints/ # Modulare Routen │ ├── printers.py # Drucker-Management (inkl. Steckdosen-Tests) │ ├── users.py # Benutzerverwaltung │ ├── guest.py # Gastanfragen │ └── calendar.py # Terminplanung ├── templates/ # HTML-Templates │ ├── base.html # Basis-Template │ ├── socket_test.html # Steckdosen-Test-Interface │ └── ... ├── static/ # Statische Dateien ├── utils/ # Hilfsfunktionen ├── config/ # Konfigurationsdateien ├── docs/ # Dokumentation │ └── STECKDOSEN_TEST_DOKUMENTATION.md └── database/ # Datenbankdateien ``` ## Wartung ### Regelmäßige Aufgaben - **Backup** der Datenbank erstellen - **Log-Rotation** für Speicherplatz-Management - **Steckdosen-Konnektivität** prüfen - **Updates** für Sicherheits-Patches ### Monitoring - **Anwendungs-Logs** in `logs/` Verzeichnis - **Datenbank-Größe** und Performance überwachen - **Netzwerk-Verbindungen** zu Steckdosen prüfen ## Support ### Fehlerbehebung 1. **Logs prüfen**: `logs/app/` für Anwendungsfehler 2. **Netzwerk testen**: Erreichbarkeit der Steckdosen prüfen 3. **Datenbank-Status**: SQLite-Datei auf Korruption prüfen ### Häufige Probleme - **Steckdose nicht erreichbar**: IP-Adresse und Netzwerk prüfen - **Admin-Zugriff verweigert**: Benutzerrolle in Datenbank kontrollieren - **Session-Timeout**: Einstellungen in `config/settings.py` anpassen ## Entwicklung ### Lokale Entwicklung ```bash # Development Server export FLASK_ENV=development python app.py # CSS Watch Mode npm run watch-css # Tests ausführen python -m pytest tests/ ``` ### Deployment Das System läuft produktiv in der Mercedes-Benz TBA Marienfelde und ist für Windows-Umgebungen optimiert. ## Changelog ### Version 1.1 (2025-01-05) - ✨ **NEU**: Steckdosen-Test-System für Administratoren - 🔒 **Sicherheit**: Erweiterte Risikobewertung und Warnungen - 📊 **Monitoring**: Live-Status aller Steckdosen - 📝 **Audit**: Vollständige Protokollierung aller Testaktivitäten - 🎨 **UI**: Dedizierte Steckdosen-Test-Oberfläche ### Version 1.0 - Grundlegendes Drucker-Management-System - Benutzer- und Rechteverwaltung - Dashboard und Monitoring - Gastanfragen-System ## Lizenz Internes Projekt der Mercedes-Benz AG für die TBA Marienfelde. --- **Entwickelt für:** Mercedes-Benz Technische Berufsausbildung Marienfelde **Letzte Aktualisierung:** 2025-01-05 **Version:** 1.1