diff --git a/backend/DOCS/MINIMAL_PERFORMANCE_CHANGES.md b/backend/DOCS/MINIMAL_PERFORMANCE_CHANGES.md
new file mode 100644
index 000000000..0519ecba6
--- /dev/null
+++ b/backend/DOCS/MINIMAL_PERFORMANCE_CHANGES.md
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/backend/backend/database/myp.db b/backend/backend/database/myp.db
index caeab6b2c..2c6c4e6e2 100644
Binary files a/backend/backend/database/myp.db and b/backend/backend/database/myp.db differ
diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log
index 9f3ad7770..2813e4316 100644
--- a/backend/logs/app/app.log
+++ b/backend/logs/app/app.log
@@ -59336,3 +59336,82 @@ WHERE users.role = ?]
2025-06-20 08:34:40 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet
2025-06-20 08:34:40 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)...
2025-06-20 08:34:45 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db
+2025-06-20 08:34:58 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden
+2025-06-20 08:34:58 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://:
+2025-06-20 08:37:10 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt...
+2025-06-20 08:37:10 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt
+2025-06-20 08:37:10 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler:
+2025-06-20 08:37:12 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung:
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [CONFIG] Production-Modus:
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment:
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode:
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo:
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] 🏢
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped:
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank...
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin...
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker...
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105)
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager...
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler...
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet
+2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)...
+2025-06-20 08:37:31 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden
+2025-06-20 08:37:31 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://:
+2025-06-20 08:41:34 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung:
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [CONFIG] Production-Modus:
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment:
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode:
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo:
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] 🏢
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped:
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank...
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin...
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker...
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105)
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager...
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler...
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet
+2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)...
diff --git a/backend/logs/core_system/core_system.log b/backend/logs/core_system/core_system.log
index a2b4aa4ce..63217e49d 100644
--- a/backend/logs/core_system/core_system.log
+++ b/backend/logs/core_system/core_system.log
@@ -428,3 +428,7 @@
2025-06-20 08:34:10 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion)
2025-06-20 08:34:37 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert
2025-06-20 08:34:37 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion)
+2025-06-20 08:37:11 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert
+2025-06-20 08:37:11 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion)
+2025-06-20 08:41:34 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert
+2025-06-20 08:41:34 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion)
diff --git a/backend/logs/data_management/data_management.log b/backend/logs/data_management/data_management.log
index e3019911b..569e06ef8 100644
--- a/backend/logs/data_management/data_management.log
+++ b/backend/logs/data_management/data_management.log
@@ -959,3 +959,7 @@
2025-06-20 08:34:10 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
2025-06-20 08:34:37 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert
2025-06-20 08:34:37 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
+2025-06-20 08:37:12 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert
+2025-06-20 08:37:12 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
+2025-06-20 08:41:35 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert
+2025-06-20 08:41:35 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
diff --git a/backend/logs/drucker_steuerung/drucker_steuerung.log b/backend/logs/drucker_steuerung/drucker_steuerung.log
index 6c00dd64f..b55f9dfc7 100644
--- a/backend/logs/drucker_steuerung/drucker_steuerung.log
+++ b/backend/logs/drucker_steuerung/drucker_steuerung.log
@@ -67,3 +67,6 @@
2025-06-20 08:33:21 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen
2025-06-20 08:33:42 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen
2025-06-20 08:34:11 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen
+2025-06-20 08:34:39 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen
+2025-06-20 08:37:13 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen
+2025-06-20 08:41:36 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen
diff --git a/backend/logs/energy_monitoring/energy_monitoring.log b/backend/logs/energy_monitoring/energy_monitoring.log
index 8cd19f1af..38e858646 100644
--- a/backend/logs/energy_monitoring/energy_monitoring.log
+++ b/backend/logs/energy_monitoring/energy_monitoring.log
@@ -784,3 +784,6 @@
2025-06-20 08:33:21 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert
2025-06-20 08:33:42 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert
2025-06-20 08:34:11 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert
+2025-06-20 08:34:39 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert
+2025-06-20 08:37:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert
+2025-06-20 08:41:36 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert
diff --git a/backend/logs/hardware_integration/hardware_integration.log b/backend/logs/hardware_integration/hardware_integration.log
index 83c032f22..97eaaefb9 100644
--- a/backend/logs/hardware_integration/hardware_integration.log
+++ b/backend/logs/hardware_integration/hardware_integration.log
@@ -3687,3 +3687,7 @@
2025-06-20 08:34:40 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE
2025-06-20 08:34:45 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen
2025-06-20 08:34:45 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE
+2025-06-20 08:37:12 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen
+2025-06-20 08:37:13 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE
+2025-06-20 08:41:35 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen
+2025-06-20 08:41:36 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE
diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log
index f1fc1ce65..3d80eb9fb 100644
--- a/backend/logs/job_queue_system/job_queue_system.log
+++ b/backend/logs/job_queue_system/job_queue_system.log
@@ -1846,3 +1846,13 @@
2025-06-20 08:34:36 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität)
2025-06-20 08:34:37 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert
2025-06-20 08:34:37 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion)
+2025-06-20 08:34:40 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität)
+2025-06-20 08:37:10 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität)
+2025-06-20 08:37:12 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert
+2025-06-20 08:37:12 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion)
+2025-06-20 08:37:13 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität)
+2025-06-20 08:38:13 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität)
+2025-06-20 08:38:13 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität)
+2025-06-20 08:41:35 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert
+2025-06-20 08:41:35 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion)
+2025-06-20 08:41:36 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität)
diff --git a/backend/logs/monitoring_analytics/monitoring_analytics.log b/backend/logs/monitoring_analytics/monitoring_analytics.log
index e8b83ceb3..02a807f75 100644
--- a/backend/logs/monitoring_analytics/monitoring_analytics.log
+++ b/backend/logs/monitoring_analytics/monitoring_analytics.log
@@ -947,3 +947,9 @@
2025-06-20 08:33:42 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
2025-06-20 08:34:11 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert
2025-06-20 08:34:11 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
+2025-06-20 08:34:39 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert
+2025-06-20 08:34:39 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
+2025-06-20 08:37:13 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert
+2025-06-20 08:37:13 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
+2025-06-20 08:41:36 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert
+2025-06-20 08:41:36 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
diff --git a/backend/logs/permissions/permissions.log b/backend/logs/permissions/permissions.log
index a135e595b..72bb23a51 100644
--- a/backend/logs/permissions/permissions.log
+++ b/backend/logs/permissions/permissions.log
@@ -505,3 +505,6 @@ WHERE users.role = ?]
2025-06-20 08:33:21 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert
2025-06-20 08:33:42 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert
2025-06-20 08:34:11 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert
+2025-06-20 08:34:39 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert
+2025-06-20 08:37:13 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert
+2025-06-20 08:41:36 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert
diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log
index f849434d0..47e2441bf 100644
--- a/backend/logs/scheduler/scheduler.log
+++ b/backend/logs/scheduler/scheduler.log
@@ -2658,3 +2658,39 @@
2025-06-20 08:34:43 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar
2025-06-20 08:34:45 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-20 08:34:46 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar
+2025-06-20 08:34:49 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar
+2025-06-20 08:34:52 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar
+2025-06-20 08:34:55 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar
+2025-06-20 08:34:58 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar
+2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ============================================================
+2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN
+2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen
+2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0
+2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6
+2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0
+2025-06-20 08:34:58 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden!
+2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ============================================================
+2025-06-20 08:37:12 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
+2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
+2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
+2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart...
+2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen...
+2025-06-20 08:37:16 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar
+2025-06-20 08:37:19 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar
+2025-06-20 08:37:22 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar
+2025-06-20 08:37:25 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar
+2025-06-20 08:37:28 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar
+2025-06-20 08:37:31 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar
+2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ============================================================
+2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN
+2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen
+2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0
+2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6
+2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0
+2025-06-20 08:37:31 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden!
+2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ============================================================
+2025-06-20 08:41:35 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
+2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
+2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
+2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart...
+2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen...
diff --git a/backend/logs/security_suite/security_suite.log b/backend/logs/security_suite/security_suite.log
index 65c98633c..1c73c611f 100644
--- a/backend/logs/security_suite/security_suite.log
+++ b/backend/logs/security_suite/security_suite.log
@@ -1434,3 +1434,9 @@
2025-06-20 08:34:37 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert
2025-06-20 08:34:37 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
2025-06-20 08:34:39 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert
+2025-06-20 08:37:12 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert
+2025-06-20 08:37:12 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
+2025-06-20 08:37:13 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert
+2025-06-20 08:41:35 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert
+2025-06-20 08:41:35 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
+2025-06-20 08:41:36 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert
diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log
index 479db21eb..bf81418a1 100644
--- a/backend/logs/startup/startup.log
+++ b/backend/logs/startup/startup.log
@@ -3754,3 +3754,30 @@
2025-06-20 08:34:11 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-20 08:34:11 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-20 08:34:11 - [startup] startup - [INFO] INFO - ==================================================
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - ==================================================
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet...
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T08:34:39.649392
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
+2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - ==================================================
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - ==================================================
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet...
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T08:37:13.209278
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
+2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - ==================================================
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - ==================================================
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet...
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T08:41:36.142283
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
+2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - ==================================================
diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log
index fcc14554d..33b22a236 100644
--- a/backend/logs/utilities_collection/utilities_collection.log
+++ b/backend/logs/utilities_collection/utilities_collection.log
@@ -1245,3 +1245,7 @@
2025-06-20 08:34:37 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion)
2025-06-20 08:34:45 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert
2025-06-20 08:34:45 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion)
+2025-06-20 08:37:12 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert
+2025-06-20 08:37:12 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion)
+2025-06-20 08:41:34 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert
+2025-06-20 08:41:34 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion)
diff --git a/backend/logs/windows_fixes/windows_fixes.log b/backend/logs/windows_fixes/windows_fixes.log
index add855648..4133ed2dc 100644
--- a/backend/logs/windows_fixes/windows_fixes.log
+++ b/backend/logs/windows_fixes/windows_fixes.log
@@ -431,3 +431,7 @@
2025-06-20 08:34:10 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-20 08:34:37 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-20 08:34:37 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
+2025-06-20 08:37:11 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
+2025-06-20 08:37:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
+2025-06-20 08:41:34 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
+2025-06-20 08:41:34 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
diff --git a/backend/static/css/performance-optimized-minimal.css b/backend/static/css/performance-optimized-minimal.css
new file mode 100644
index 000000000..c8b5e05a3
--- /dev/null
+++ b/backend/static/css/performance-optimized-minimal.css
@@ -0,0 +1,90 @@
+/**
+ * Minimal-invasive Performance-Optimierungen für MYP Platform
+ * Behält den ursprünglichen Style bei, reduziert nur CPU-intensive Operationen
+ */
+
+/* Reduzierte Animationen ohne Style-Verlust */
+@media (prefers-reduced-motion: no-preference) {
+ /* Nur längere Animationen verkürzen */
+ .animate-pulse {
+ animation-duration: 1s !important;
+ }
+
+ /* Komplexe cubic-bezier durch einfache ease ersetzen */
+ .glass, .mobile-menu {
+ transition-timing-function: ease !important;
+ transition-duration: 0.2s !important;
+ }
+}
+
+/* Glassmorphismus-Optimierung - nur bei schwachen Geräten */
+@media (max-width: 768px) {
+ .glass {
+ backdrop-filter: blur(8px) !important;
+ -webkit-backdrop-filter: blur(8px) !important;
+ }
+}
+
+/* Performance-freundliche Hover-Effekte */
+.hover-performance {
+ transition: opacity 0.15s ease;
+}
+
+.hover-performance:hover {
+ opacity: 0.85;
+}
+
+/* Optimierte Loading-States */
+.loading-optimized {
+ background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 50%, transparent 100%);
+ background-size: 200% 100%;
+ animation: shimmer 1.5s ease-in-out infinite;
+}
+
+@keyframes shimmer {
+ 0% { background-position: 200% 0; }
+ 100% { background-position: -200% 0; }
+}
+
+/* Mobile-optimierte Glassmorphismus-Reduktion */
+@media (max-device-width: 768px), (hover: none) {
+ .glass {
+ backdrop-filter: blur(4px) !important;
+ -webkit-backdrop-filter: blur(4px) !important;
+ }
+}
+
+/* FontAwesome-Animationen reduzieren */
+.fa-spin {
+ animation-duration: 1s !important;
+}
+
+.fa-pulse {
+ animation-duration: 1.5s !important;
+}
+
+/* Reduzierte Transform-Animationen */
+.scale-hover {
+ transition: transform 0.15s ease;
+}
+
+.scale-hover:hover {
+ transform: scale(1.02);
+}
+
+/* Performance-bewusste Box-Shadows */
+.shadow-performance {
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+}
+
+.shadow-performance-hover:hover {
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+}
+
+/* Conditional Animation Disabling for Performance */
+@media (max-width: 768px) and (max-height: 1024px) {
+ * {
+ animation-duration: 0.3s !important;
+ transition-duration: 0.15s !important;
+ }
+}
\ No newline at end of file
diff --git a/backend/static/css/performance-optimized-minimal.min.css b/backend/static/css/performance-optimized-minimal.min.css
new file mode 100644
index 000000000..fde0b0c97
--- /dev/null
+++ b/backend/static/css/performance-optimized-minimal.min.css
@@ -0,0 +1 @@
+@media (prefers-reduced-motion:no-preference){.animate-pulse{animation-duration:1s!important;}.glass,.mobile-menu{transition-timing-function:ease!important;transition-duration:0.2s!important;}}@media (max-width:768px){.glass{backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;}}.hover-performance{transition:opacity 0.15s ease;}.hover-performance:hover{opacity:0.85;}.loading-optimized{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.2) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;}@keyframes shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}@media (max-device-width:768px),(hover:none){.glass{backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;}}.fa-spin{animation-duration:1s!important;}.fa-pulse{animation-duration:1.5s!important;}.scale-hover{transition:transform 0.15s ease;}.scale-hover:hover{transform:scale(1.02);}.shadow-performance{box-shadow:0 2px 8px rgba(0,0,0,0.1);}.shadow-performance-hover:hover{box-shadow:0 4px 12px rgba(0,0,0,0.15);}@media (max-width:768px) and (max-height:1024px){*{animation-duration:0.3s!important;transition-duration:0.15s!important;}}
\ No newline at end of file
diff --git a/backend/static/js/glassmorphism-notifications.js b/backend/static/js/glassmorphism-notifications.js
index d7b8e31e7..e847ac954 100644
--- a/backend/static/js/glassmorphism-notifications.js
+++ b/backend/static/js/glassmorphism-notifications.js
@@ -8,7 +8,7 @@ class GlassmorphismNotificationSystem {
this.notifications = new Map();
this.toastCounter = 0;
this.soundEnabled = localStorage.getItem('myp-notification-sound') !== 'false';
- this.animationsEnabled = !window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ this.animationsEnabled = window.matchMedia('(prefers-reduced-motion: no-preference)').matches && !this.isLowPerformanceDevice();
// Callback-Registry für Actions hinzufügen
this.actionCallbacks = new Map();
@@ -29,6 +29,14 @@ class GlassmorphismNotificationSystem {
console.log('🎨 Glassmorphism Notification System initialisiert');
}
+ isLowPerformanceDevice() {
+ return (
+ navigator.hardwareConcurrency <= 2 ||
+ navigator.deviceMemory <= 2 ||
+ /Android|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent)
+ );
+ }
+
createToastContainer() {
if (!document.getElementById('glassmorphism-toast-container')) {
const container = document.createElement('div');
diff --git a/backend/static/js/performance-enhancements.js b/backend/static/js/performance-enhancements.js
new file mode 100644
index 000000000..ed3ff49b2
--- /dev/null
+++ b/backend/static/js/performance-enhancements.js
@@ -0,0 +1,104 @@
+/**
+ * Minimal-invasive Performance-Optimierungen für MYP Platform
+ * Behält alle Funktionen bei, optimiert nur die Performance
+ */
+
+(function() {
+ 'use strict';
+
+ // Detektiere schwache Geräte
+ const isLowPerformanceDevice = () => {
+ return (
+ navigator.hardwareConcurrency <= 2 ||
+ navigator.deviceMemory <= 2 ||
+ /Android|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent)
+ );
+ };
+
+ // Reduziere Animationen nur bei schwachen Geräten
+ if (isLowPerformanceDevice()) {
+ document.documentElement.style.setProperty('--animation-speed', '0.5');
+ document.documentElement.classList.add('low-performance');
+ }
+
+ // Optimierte Intersection Observer für bessere Performance
+ const observerOptions = {
+ rootMargin: '50px',
+ threshold: 0.1
+ };
+
+ // Lazy Loading für schwere Elemente
+ const lazyElements = document.querySelectorAll('[data-lazy]');
+ if (lazyElements.length && 'IntersectionObserver' in window) {
+ const lazyObserver = new IntersectionObserver((entries) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ const element = entry.target;
+ element.classList.add('loaded');
+ lazyObserver.unobserve(element);
+ }
+ });
+ }, observerOptions);
+
+ lazyElements.forEach(el => lazyObserver.observe(el));
+ }
+
+ // Debounced Resize Handler für bessere Performance
+ let resizeTimeout;
+ window.addEventListener('resize', () => {
+ clearTimeout(resizeTimeout);
+ resizeTimeout = setTimeout(() => {
+ // Nur bei größeren Änderungen reagieren
+ document.dispatchEvent(new CustomEvent('optimizedResize'));
+ }, 150);
+ });
+
+ // Optimierte Animation-Callbacks
+ let animationFrame;
+ const scheduleAnimation = (callback) => {
+ if (animationFrame) {
+ cancelAnimationFrame(animationFrame);
+ }
+ animationFrame = requestAnimationFrame(callback);
+ };
+
+ // Performance-Monitor (nur in Development)
+ if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') {
+ let performanceWarnings = 0;
+ const maxWarnings = 5;
+
+ const checkPerformance = () => {
+ if (performance.now() > 16 && performanceWarnings < maxWarnings) {
+ console.warn('🐌 Performance: Frame took longer than 16ms');
+ performanceWarnings++;
+ }
+ };
+
+ // Performance-Monitoring nur in Development
+ setInterval(checkPerformance, 1000);
+ }
+
+ // Graceful Degradation für ältere Browser
+ if (!window.CSS || !CSS.supports || !CSS.supports('backdrop-filter', 'blur(1px)')) {
+ document.documentElement.classList.add('no-backdrop-filter');
+ }
+
+ // Memory-Optimierung für Event Listeners
+ const eventOptions = { passive: true };
+
+ // Optimierte Scroll-Handler
+ let scrollTimeout;
+ window.addEventListener('scroll', () => {
+ clearTimeout(scrollTimeout);
+ scrollTimeout = setTimeout(() => {
+ document.dispatchEvent(new CustomEvent('optimizedScroll'));
+ }, 10);
+ }, eventOptions);
+
+ console.log('✨ Performance-Optimierungen geladen:', {
+ lowPerformance: isLowPerformanceDevice(),
+ backropFilter: CSS.supports('backdrop-filter', 'blur(1px)'),
+ memory: navigator.deviceMemory || 'unknown',
+ cores: navigator.hardwareConcurrency || 'unknown'
+ });
+})();
\ No newline at end of file
diff --git a/backend/static/js/performance-enhancements.min.js b/backend/static/js/performance-enhancements.min.js
new file mode 100644
index 000000000..a5b6379a3
--- /dev/null
+++ b/backend/static/js/performance-enhancements.min.js
@@ -0,0 +1 @@
+(function(){'use strict';const e=()=>navigator.hardwareConcurrency<=2||navigator.deviceMemory<=2||/Android|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent);e()&&(document.documentElement.style.setProperty('--animation-speed','0.5'),document.documentElement.classList.add('low-performance'));const t={rootMargin:'50px',threshold:0.1},n=document.querySelectorAll('[data-lazy]');if(n.length&&'IntersectionObserver'in window){const o=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add('loaded'),o.unobserve(e.target))})},t);n.forEach(e=>o.observe(e))}let r;window.addEventListener('resize',()=>{clearTimeout(r),r=setTimeout(()=>{document.dispatchEvent(new CustomEvent('optimizedResize'))},150)});let i;const s=e=>{i&&cancelAnimationFrame(i),i=requestAnimationFrame(e)};if('localhost'===window.location.hostname||'127.0.0.1'===window.location.hostname){let a=0;const c=()=>{performance.now()>16&&a<5&&(console.warn('🐌 Performance: Frame took longer than 16ms'),a++)};setInterval(c,1000)}window.CSS&&CSS.supports&&CSS.supports('backdrop-filter','blur(1px)')||document.documentElement.classList.add('no-backdrop-filter');const l={passive:!0};let d;window.addEventListener('scroll',()=>{clearTimeout(d),d=setTimeout(()=>{document.dispatchEvent(new CustomEvent('optimizedScroll'))},10)},l),console.log('✨ Performance-Optimierungen geladen:',{lowPerformance:e(),backropFilter:CSS.supports('backdrop-filter','blur(1px)'),memory:navigator.deviceMemory||'unknown',cores:navigator.hardwareConcurrency||'unknown'})})();
\ No newline at end of file
diff --git a/backend/templates/base.html b/backend/templates/base.html
index e6cc5655c..449707d95 100644
--- a/backend/templates/base.html
+++ b/backend/templates/base.html
@@ -24,6 +24,9 @@
+
+
+