12 KiB
12 KiB
MYP Platform - Mercedes-Benz 3D-Druck-Management-System
Projektüberblick
Dies ist ein umfassendes 3D-Druck-Management-System für Mercedes-Benz TBA Marienfelde, entwickelt als Projektarbeit für die IHK. Das System verwaltet 3D-Drucker, Druckaufträge, Benutzer und bietet erweiterte Features wie Smart-Plug-Steuerung über Tapo-Geräte.
Hauptkomponenten
🚀 Core Application Files
backend/app.py ⭐ (HAUPTEINSTIEGSPUNKT)
- Funktion: Hauptanwendung und Flask-App-Initialisierung
- Verwendung: ✅ AKTIV - Startet die gesamte Anwendung
- Features:
- Production/Development-Konfiguration
- Blueprint-Registration
- Security-Features (CSRF, Session-Management)
- Air-Gapped/Offline-Modus für Mercedes-Benz
- Aggressive Shutdown-Handler
- Abhängigkeiten: models.py, alle blueprints, utils/*
backend/models.py ⭐ (DATENBANK-CORE)
- Funktion: SQLAlchemy-Datenbankmodelle und Session-Management
- Verwendung: ✅ AKTIV - Von allen Modulen verwendet
- Modelle:
User
- Benutzerverwaltung mit Mercedes-spezifischen FeldernPrinter
- 3D-Drucker mit Status und StandortJob
- Druckaufträge mit vollständiger Workflow-UnterstützungGuestRequest
- Gastanfragen mit OTP-SystemSystemTimer
- Timer-Management für automatische AbläufePlugStatusLog
- Tapo Smart-Plug LoggingStats
,SystemLog
,Notification
- System-Tracking
- Database: SQLite mit optimierten Connection-Pooling
🎛️ Configuration & Settings
backend/config/
- app_config.py ✅ - Flask-Konfigurationsklassen (Dev/Prod/Test)
- security.py ✅ - Sicherheitskonfiguration und Headers
- init.py ✅ - Konfiguration-Package-Initialisierung
backend/utils/settings.py ⭐
- Funktion: Zentrale Systemeinstellungen und Pfade
- Verwendung: ✅ AKTIV - Von allen Modulen importiert
- Inhalt: DATABASE_PATH, SECRET_KEY, SESSION_LIFETIME, Pfade
backend/requirements.txt ⭐
- Funktion: Python-Abhängigkeiten (130+ Pakete)
- Verwendung: ✅ AKTIV - Production-optimiert
- Kategorien: Flask-Ecosystem, Hardware-Integration (PyP100), Security, Monitoring
🔧 Blueprints (API-Routen)
backend/blueprints/jobs.py ⭐
- Funktion: Druckauftrags-Management
- Verwendung: ✅ AKTIV
- Features: Job-CRUD, Status-Tracking, Timer-Integration
backend/blueprints/printers.py ⭐
- Funktion: Druckerverwaltung und -monitoring
- Verwendung: ✅ AKTIV
- Features: Drucker-Status, Wartung, Standort-Management
backend/blueprints/auth.py ⭐
- Funktion: Authentifizierung und Autorisierung
- Verwendung: ✅ AKTIV
- Features: Login/Logout, Session-Management, Berechtigungen
backend/blueprints/admin_unified.py ⭐
- Funktion: Einheitliche Admin-Oberfläche
- Verwendung: ✅ AKTIV - Ersetzt separate Admin-Module
- Features: Benutzer-/Drucker-/System-Verwaltung
backend/blueprints/calendar.py ⭐
- Funktion: Kalender-Integration und Terminplanung
- Verwendung: ✅ AKTIV
- Features: Job-Scheduling, Ressourcenplanung
backend/blueprints/guest.py ⭐
- Funktion: Gastbenutzer-System
- Verwendung: ✅ AKTIV
- Features: Gastanfragen, OTP-System, E-Mail-Benachrichtigungen
backend/blueprints/tapo_control.py ⭐
- Funktion: Smart-Plug-Steuerung (TP-Link Tapo)
- Verwendung: ✅ AKTIV
- Features: Fernsteuerung, Zeitsteuerung, Status-Monitoring
backend/blueprints/user_management.py ⭐
- Funktion: Erweiterte Benutzerverwaltung
- Verwendung: ✅ AKTIV
- Features: Profil-Management, Berechtigungen, API-Endpunkte
backend/blueprints/uploads.py ⭐
- Funktion: Datei-Upload-System
- Verwendung: ✅ AKTIV
- Features: G-Code-Upload, Validierung, Speicherverwaltung
backend/blueprints/api_simple.py ⭐
- Funktion: Vereinfachte API-Endpunkte
- Verwendung: ✅ AKTIV
- Features: Health-Check, Status-API
backend/blueprints/sessions.py ✅
- Funktion: Session-Management
- Verwendung: ✅ AKTIV
backend/blueprints/kiosk.py ✅
- Funktion: Kiosk-Modus für öffentliche Terminals
- Verwendung: ✅ AKTIV
🛠️ Utility Modules
Core System Utilities
- utils/logging_config.py ⭐ - Erweiterte Logging-Konfiguration
- utils/database_core.py ⭐ - Datenbank-Optimierungen und Connection-Management
- utils/database_utils.py ⭐ - Datenbank-Hilfsfunktionen
- utils/database_cleanup.py ✅ - Automatische DB-Bereinigung
- utils/database_migration.py ✅ - Schema-Migrationen
Hardware Integration
- utils/tapo_controller.py ⭐ - TP-Link Tapo Smart-Plug Integration
- utils/printer_monitor.py ⭐ - 3D-Drucker Monitoring und Status
- utils/debug_drucker_erkennung.py ✅ - Drucker-Discovery-System
Job & Timer Management
- utils/job_scheduler.py ⭐ - Druckauftrags-Scheduler mit Smart-Plug-Integration
- utils/timer_manager.py ⭐ - Erweiterte Timer-Verwaltung
- utils/timeout_force_quit_manager.py ⭐ - Force-Quit mit visueller Anzeige
- utils/queue_manager.py ⭐ - Job-Warteschlangen-Management
- utils/conflict_manager.py ⭐ - Konfliktauflösung bei Überschneidungen
Security & Permissions
- utils/security.py ⭐ - Sicherheits-Middleware und Headers
- utils/permissions.py ⭐ - Rollenbasierte Berechtigungen
- utils/rate_limiter.py ✅ - Rate-Limiting für API-Schutz
User Interface & Experience
- utils/form_validation.py ⭐ - Formular-Validierung mit Client/Server-Sync
- utils/drag_drop_system.py ⭐ - Drag & Drop für Datei-Uploads
- utils/advanced_tables.py ⭐ - Erweiterte Tabellen mit Sortierung/Filtering
- utils/template_helpers.py ⭐ - Jinja2-Template-Hilfsfunktionen
- utils/realtime_dashboard.py ⭐ - WebSocket-basiertes Real-time Dashboard
System Management
- utils/system_control.py ⭐ - System-weite Steuerung und Monitoring
- utils/maintenance_system.py ⭐ - Wartungsplaner für Drucker
- utils/multi_location_system.py ⭐ - Multi-Standort-Verwaltung
- utils/shutdown_manager.py ⭐ - Kontrolliertes System-Shutdown
- utils/watchdog_manager.py ⭐ - System-Überwachung und Recovery
- utils/error_recovery.py ⭐ - Automatische Fehlerbehandlung
Reporting & Analytics
- utils/report_generator.py ⭐ - PDF/Excel-Report-Generator
- utils/analytics.py ⭐ - System-Analytics und Metriken
- utils/performance_monitor.py ✅ - Performance-Tracking
Communication & Notifications
- utils/email_notification.py ✅ - E-Mail-Benachrichtigungen
- utils/offline_config.py ✅ - Air-Gapped-Modus Konfiguration
File & Data Management
- utils/file_manager.py ⭐ - Erweiterte Dateiverwaltung
- utils/file_utils.py ⭐ - Datei-Hilfsfunktionen
- utils/backup_manager.py ✅ - Automatische Backups
Platform-Specific
- utils/windows_fixes.py ⭐ - Windows-spezifische Optimierungen
- utils/ssl_manager.py ✅ - SSL/TLS-Zertifikat-Management
- utils/ssl_config.py ✅ - SSL-Konfiguration
🎨 Frontend Assets
backend/templates/ ⭐
- base.html - Haupt-Template mit responsivem Design
- login.html - Anmelde-Interface
- dashboard.html - Hauptdashboard
- jobs.html - Druckauftrags-Verwaltung
- printers.html - Drucker-Übersicht
- calendar.html - Kalender-Ansicht
- admin.html - Admin-Panel
- guest_request.html - Gastanfrage-Formular
- settings.html - Benutzereinstellungen
- profile.html - Benutzerprofil
- analytics.html - System-Analytics
- tapo_control.html - Smart-Plug-Steuerung
- errors/ - Fehlerseiten (404, 500)
- jobs/ - Job-spezifische Templates
backend/static/ ⭐
- css/ - Stylesheets (responsive, Mercedes-Design)
- js/ - JavaScript (Charts, FullCalendar, Real-time)
- fontawesome/ - Icon-Bibliothek (kompletter Satz)
- icons/ - Projekt-spezifische Icons
- manifest.json - PWA-Manifest
- offline.html - Air-Gapped-Modus-Seite
📊 Database & Data
backend/database/
- myp.db - Haupt-SQLite-Datenbank
- backups/ - Automatische Datenbank-Backups
backend/uploads/ ⭐
- assets/, avatars/, jobs/, temp/ - Strukturierte Datei-Organisation
- backups/, logs/, guests/ - System-Dateien
🔧 Setup & Deployment
backend/setup/
- setup_https_only.sh ⭐ - HTTPS-Setup für Production
- systemd/ - Linux-Service-Dateien
backend/scripts/ ⭐
- screenshot_tool.py - Automatische Screenshots für Schulungen
- test_protocol_generator.py - Test-Protokoll-Generator
- requirements_screenshot_tool.txt - Dependencies für Screenshot-Tool
📝 Documentation & Legacy
docs/ ⭐
- v1-LEGACY/, v2-LEGACY/ - Dokumentation alter Versionen
- MYP.dbml, MYP.sql - Datenbank-Schema-Dokumentation
backend/legacy/
- app_original.py - Original-Implementierung (Backup)
IHK_Projektdokumentation/ ⭐
- Anlagen_und_Screenshots/ - Schulungsmaterialien
- ChatGPT-Data/, Gesprächsprotokolle/ - Entwicklungsdokumentation
- IHK_Vorgaben/ - Offizielle IHK-Anforderungen
dokumentation/
- berichtshefte/ - Ausbildungsberichte
- kalender/ - Projekt-Zeitplanung
🧪 Testing & Quality
tests/
- Umfassendes Test-Framework (noch zu implementieren)
Quality Assurance Files
- utils/test_*.py - Verschiedene Test-Utilities
- backend/debug/ - Debug-Logs und -Tools
- backend/logs/ - Strukturierte Log-Dateien nach Modulen
🔄 Deprecated & Backup Files
LEGACY-torben_frontend/ ❌
- Funktion: Alte Next.js-Frontend-Implementation
- Status: DEPRECATED - Wird nicht verwendet
- Ersetzt durch: Jinja2-Templates in backend/templates/
backend/blueprints/deprecated/ ❌
- admin.py - Alte Admin-Implementation
- Status: Ersetzt durch admin_unified.py
utils/deprecated/ ❌
- Verschiedene veraltete Utility-Module
📈 Referenz-Matrix (Wer verwendet was)
Hochfrequent verwendete Module:
- models.py → Verwendet von: app.py, allen blueprints, 90% der utils
- utils/settings.py → Verwendet von: app.py, models.py, allen configs
- utils/logging_config.py → Verwendet von: Praktisch allen .py-Dateien
- utils/permissions.py → Verwendet von: allen blueprints, auth-relevanten utils
Blueprint-Dependencies:
- jobs.py → models, job_scheduler, timer_manager, printer_monitor
- printers.py → models, printer_monitor, maintenance_system
- admin_unified.py → models, alle user/printer/system utils
- tapo_control.py → tapo_controller, job_scheduler
Hardware-Integration:
- utils/tapo_controller.py → Verwendet von: tapo_control.py, job_scheduler.py
- utils/printer_monitor.py → Verwendet von: printers.py, jobs.py, system_control.py
🚦 System-Status-Übersicht
✅ Produktiv verwendet (Core Features):
- Hauptanwendung (app.py, models.py)
- Alle aktiven Blueprints
- Job-Management-System
- Smart-Plug-Integration
- Benutzer- und Rechteverwaltung
- Real-time Dashboard
- Gast-System mit OTP
🔧 Experimentell/In Entwicklung:
- Multi-Location-System
- Erweiterte Analytics
- Performance-Monitoring
- Automatische Wartungsplanung
❌ Deprecated/Nicht verwendet:
- LEGACY-torben_frontend/
- blueprints/deprecated/
- utils/deprecated/
- Einige Test-/Debug-Scripts
🎯 Empfehlungen für Wartung
Priorität 1 (Kritisch):
- models.py: Datenbank-Schema pflegen
- app.py: Konfiguration aktuell halten
- Alle blueprints: API-Endpunkte dokumentieren
- utils/tapo_controller.py: Hardware-Kompatibilität prüfen
Priorität 2 (Wichtig):
- templates/: UI/UX kontinuierlich verbessern
- utils/security.py: Sicherheitsupdates
- setup/: Deployment-Scripts aktualisieren
Aufräumen:
- Deprecated-Ordner entfernen (nach Backup)
- Ungenutzte Test-Scripts konsolidieren
- Log-Dateien regelmäßig archivieren
Gesamtstatistik:
- ~200 Python-Dateien (Backend-Logik)
- ~50 HTML-Templates (Frontend)
- ~130 Dependencies (requirements.txt)
- ~15 Hauptbereiche (Blueprints, Utils, etc.)
- 1 SQLite-Datenbank mit 12+ Tabellen
- Full-Stack-Anwendung mit Real-time-Features
Entwicklungszeitraum: 2024-2025 (Laufendes IHK-Projekt) Zielgruppe: Mercedes-Benz TBA Marienfelde (Air-Gapped Environment) Technologie-Stack: Flask, SQLAlchemy, Jinja2, WebSockets, SQLite