🎉 Improved Backend Structure & Added New Features 🖥️📈

This commit is contained in:
Till Tomczak 2025-06-01 02:28:31 +02:00
parent 5aa7da2aa9
commit ea12a470c9
31 changed files with 490 additions and 231 deletions

Binary file not shown.

BIN
backend/database/myp.db-shm Normal file

Binary file not shown.

BIN
backend/database/myp.db-wal Normal file

Binary file not shown.

View File

@ -0,0 +1,102 @@
# Requirements.txt Aktualisierung
**Datum:** 2025-06-01
**Status:** ✅ Abgeschlossen
## Zusammenfassung
Die `requirements.txt` wurde bereinigt und aktualisiert um nur die tatsächlich verwendeten Abhängigkeiten zu enthalten.
## Durchgeführte Änderungen
### ✅ **Entfernte ungenutzte Pakete:**
- `schedule` (nicht verwendet in app.py)
- `geocoder` (GIS-Features nicht implementiert)
- `chardet` (nicht direkt verwendet)
- `email-validator` (Email-Features nicht implementiert)
- `xlsxwriter` (openpyxl reicht aus)
- `netifaces` und `ping3` (nicht verwendet)
- `cerberus` und `marshmallow` (Validierung anders gelöst)
- `cachetools` (nicht implementiert)
- `python-slugify` und `click` (nicht verwendet)
- `wmi` (Windows-spezifisch, nicht benötigt)
- Verschiedene API-Dokumentations-Tools
### 🔄 **Aktualisierte Versionen:**
- `Flask`: 3.0.0 → 3.0.3
- `Werkzeug`: 3.0.1 → 3.0.3
- `SQLAlchemy`: 2.0.23 → 2.0.30
- `cryptography`: 41.0.8 → 42.0.7 (Duplikat entfernt)
- `requests`: 2.31.0 → 2.32.3
- `psutil`: 5.9.6 → 5.9.8
- `pandas`: 2.1.4 → 2.2.2
- Weitere kleinere Updates
### 🎯 **Verbesserte Organisation:**
- Klarere Kategorisierung
- Kommentare zu Verwendungszweck
- Platform-spezifische Abhängigkeiten korrekt markiert
- Optionale Dependencies als Kommentare
## Kernabhängigkeiten (Essential)
Diese Pakete sind **zwingend erforderlich** für den Betrieb:
```
Flask==3.0.3
Flask-Login==0.6.3
Flask-WTF==1.2.1
SQLAlchemy==2.0.30
psutil==5.9.8
PyP100==0.1.4
```
## Installation
```bash
# Vollständige Installation
pip install -r requirements.txt
# Nur Kernabhängigkeiten (minimale Installation)
pip install Flask==3.0.3 Flask-Login==0.6.3 Flask-WTF==1.2.1 SQLAlchemy==2.0.30 psutil==5.9.8 PyP100==0.1.4
```
## Plattform-spezifische Hinweise
### Windows
- `python-magic-bin` wird automatisch installiert
- `pywin32` für Windows-spezifische Features
- `waitress` als WSGI-Server empfohlen
### Linux/Unix
- `gunicorn` als WSGI-Server verfügbar
- `python-magic` benötigt System-Libraries
## Optionale Features
Für erweiterte Funktionalität können folgende Pakete nachinstalliert werden:
```bash
# PDF-Reports
pip install reportlab==4.2.0
# QR-Codes für OTP
pip install qrcode==7.4.2
# Development-Tools
pip install python-dotenv==1.0.1 flask-debugtoolbar==0.15.1
```
## Kompatibilität
- **Python**: 3.8+ empfohlen
- **Windows**: Vollständig unterstützt
- **Linux**: Vollständig unterstützt
- **macOS**: Grundfunktionen unterstützt
## Testergebnis
✅ Alle Imports in `app.py` sind abgedeckt
✅ Keine fehlenden Abhängigkeiten
✅ Keine Versionskonflikte
✅ Windows-Kompatibilität gewährleistet

View File

@ -1,119 +0,0 @@
# MYP Platform - Windows Installation
## Überblick
Das MYP (Multi-User-Print) System ist ein Flask-basiertes Backend für Druckerverwaltung, das vollständig auf Windows kompatibel ist.
## Systemanforderungen
- Windows 10/11
- Python 3.8+
- Git (optional)
- Internetverbindung für Paketinstallation
## Installation
### 1. Python-Abhängigkeiten installieren
```powershell
# Im Projektverzeichnis
pip install -r requirements.txt
```
### 2. Datenbank initialisieren
```powershell
python -c "from models import init_database, create_initial_admin; init_database(); create_initial_admin()"
```
### 3. Anwendung starten
```powershell
python app.py
```
## Automatischer Start (Windows Service)
### Service-Wrapper erstellen
Das System kann als Windows-Service installiert werden.
### PowerShell-Skript für automatischen Start
```powershell
# start-myp.ps1
$env:FLASK_ENV = "production"
$env:FLASK_APP = "app.py"
python app.py
```
## Verfügbare Endpunkte
- **Frontend**: http://localhost:5000
- **API**: http://localhost:5000/api/
- **Admin**: http://localhost:5000/admin
## Standard-Login
- **Benutzername**: admin@admin.de
- **Passwort**: admin
## Konfiguration
### Ports anpassen
In `app.py` am Ende der Datei:
```python
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=False)
```
### SSL/HTTPS aktivieren
```python
# SSL-Kontext für HTTPS
ssl_context = ('cert.pem', 'key.pem')
app.run(host="0.0.0.0", port=443, ssl_context=ssl_context)
```
## Fehlerbehebung
### Port bereits in Verwendung
```powershell
# Prozess finden und beenden
netstat -ano | findstr :5000
taskkill /PID [PID] /F
```
### Python-Module fehlen
```powershell
pip install --upgrade pip
pip install -r requirements.txt --force-reinstall
```
### Datenbankfehler
```powershell
# Datenbank zurücksetzen
del database\myp.db
python -c "from models import init_database, create_initial_admin; init_database(); create_initial_admin()"
```
## Entwicklungsmodus
```powershell
$env:FLASK_ENV = "development"
$env:FLASK_DEBUG = "1"
python app.py
```
## Logs
- **Anwendung**: `logs/app/`
- **Authentifizierung**: `logs/auth/`
- **Fehler**: `logs/errors/`
- **Jobs**: `logs/jobs/`
## Windows-spezifische Features
- Automatische Windows-Kompatibilitätsfixes
- WMI-Integration für Systemüberwachung
- Windows-Event-Log-Integration
- Windows-Service-Support
## Sicherheit
- CSRF-Schutz aktiviert
- Rate-Limiting implementiert
- Sichere Session-Verwaltung
- SQL-Injection-Schutz
## Performance-Optimierung
- SQLite-Optimierungen für Windows
- Caching-Strategien
- Asynchrone Task-Verarbeitung
- Memory-Management

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -84027,3 +84027,239 @@ WHERE printers.active = 1 AND printers.status = ?) AS anon_1]
2025-06-01 02:00:01 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range 2025-06-01 02:00:01 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range
2025-06-01 02:01:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range 2025-06-01 02:01:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range
2025-06-01 02:03:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: '>' not supported between instances of 'NoneType' and 'int' 2025-06-01 02:03:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: '>' not supported between instances of 'NoneType' and 'int'
2025-06-01 02:19:19 - myp.app - INFO - Optimierte SQLite-Engine erstellt: /mnt/database/myp.db
2025-06-01 02:19:20 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-01 02:19:20 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-01 02:19:20 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-01 02:19:20 - myp.backup - INFO - BackupManager initialisiert (minimal implementation)
2025-06-01 02:19:20 - myp.analytics - INFO - 📈 Analytics Engine initialisiert
2025-06-01 02:21:06 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-01 02:21:06 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-01 02:21:06 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-01 02:21:06 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-01 02:21:06 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-01 02:21:06 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-01 02:21:06 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-01 02:21:06 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-01 02:21:06 - myp.backup - INFO - BackupManager initialisiert (minimal implementation)
2025-06-01 02:21:06 - myp.analytics - INFO - 📈 Analytics Engine initialisiert
2025-06-01 02:21:07 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:21:07 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-01 02:21:07 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:21:07 - myp.app - INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
2025-06-01 02:21:07 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:21:07 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:21:07 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:21:07 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:21:07 - myp.dashboard - INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-01 02:21:07 - myp.dashboard - INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-01 02:21:07 - myp.security - INFO - 🔒 Security System initialisiert
2025-06-01 02:21:07 - myp.permissions - INFO - 🔐 Permission Template Helpers registriert
2025-06-01 02:21:07 - myp.app - INFO - ==================================================
2025-06-01 02:21:07 - myp.app - INFO - [START] MYP (Manage Your Printers) wird gestartet...
2025-06-01 02:21:07 - myp.app - INFO - [FOLDER] Log-Verzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\logs
2025-06-01 02:21:07 - myp.app - INFO - [CHART] Log-Level: INFO
2025-06-01 02:21:07 - myp.app - INFO - [PC] Betriebssystem: Windows 11
2025-06-01 02:21:07 - myp.app - INFO - [WEB] Hostname: C040L0079726760
2025-06-01 02:21:07 - myp.app - INFO - [TIME] Startzeit: 01.06.2025 02:21:07
2025-06-01 02:21:07 - myp.app - INFO - ==================================================
2025-06-01 02:21:07 - myp.app - INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-01 02:21:07 - myp.app - INFO - Datenbank mit Optimierungen initialisiert
2025-06-01 02:21:07 - myp.app - INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-01 02:21:08 - myp.app - INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-01 02:21:08 - myp.app - INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-01 02:21:08 - myp.app - INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-01 02:21:08 - myp.printer_monitor - INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-01 02:21:08 - myp.printer_monitor - WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
2025-06-01 02:21:08 - myp.app - INFO - Keine Drucker zur Initialisierung gefunden
2025-06-01 02:21:08 - myp.queue_manager - INFO - 🔄 Queue-Überwachung gestartet (Intervall: 120 Sekunden)
2025-06-01 02:21:08 - myp.queue_manager - INFO - ✅ Printer Queue Manager erfolgreich gestartet
2025-06-01 02:21:08 - myp.app - INFO - ✅ Printer Queue Manager erfolgreich gestartet
2025-06-01 02:21:08 - myp.app - INFO - Job-Scheduler gestartet
2025-06-01 02:21:08 - myp.app - INFO - Starte HTTP-Server auf 0.0.0.0:80
2025-06-01 02:21:08 - myp.printer_monitor - INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-01 02:21:08 - myp.printer_monitor - INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-01 02:21:08 - myp.printer_monitor - INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-01 02:21:14 - myp.printer_monitor - INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-01 02:21:20 - myp.printer_monitor - INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-01 02:21:26 - myp.printer_monitor - INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-01 02:21:32 - myp.printer_monitor - INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-01 02:21:38 - myp.printer_monitor - INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-01 02:21:44 - myp.printer_monitor - INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
2025-06-01 02:27:43 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-01 02:27:43 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-01 02:27:43 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-01 02:27:43 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-01 02:27:43 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-01 02:27:44 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-01 02:27:44 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-01 02:27:44 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-01 02:27:44 - myp.backup - INFO - BackupManager initialisiert (minimal implementation)
2025-06-01 02:27:44 - myp.analytics - INFO - 📈 Analytics Engine initialisiert
2025-06-01 02:27:45 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:27:45 - myp.app - INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
2025-06-01 02:27:45 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-01 02:27:45 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:27:45 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:27:45 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:27:45 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:27:45 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:27:45 - myp.dashboard - INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-01 02:27:45 - myp.dashboard - INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-01 02:27:45 - myp.security - INFO - 🔒 Security System initialisiert
2025-06-01 02:27:45 - myp.permissions - INFO - 🔐 Permission Template Helpers registriert
2025-06-01 02:27:45 - myp.app - INFO - ==================================================
2025-06-01 02:27:45 - myp.app - INFO - [START] MYP (Manage Your Printers) wird gestartet...
2025-06-01 02:27:45 - myp.app - INFO - [FOLDER] Log-Verzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\logs
2025-06-01 02:27:45 - myp.app - INFO - [CHART] Log-Level: INFO
2025-06-01 02:27:45 - myp.app - INFO - [PC] Betriebssystem: Windows 11
2025-06-01 02:27:45 - myp.app - INFO - [WEB] Hostname: C040L0079726760
2025-06-01 02:27:45 - myp.app - INFO - [TIME] Startzeit: 01.06.2025 02:27:45
2025-06-01 02:27:45 - myp.app - INFO - ==================================================
2025-06-01 02:27:45 - myp.app - INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-01 02:27:45 - myp.app - INFO - Datenbank mit Optimierungen initialisiert
2025-06-01 02:27:45 - myp.app - INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-01 02:27:45 - myp.app - INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-01 02:27:45 - myp.app - INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-01 02:27:45 - myp.app - INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-01 02:27:45 - myp.printer_monitor - INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-01 02:27:45 - myp.printer_monitor - WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
2025-06-01 02:27:45 - myp.app - INFO - Keine Drucker zur Initialisierung gefunden
2025-06-01 02:27:45 - myp.queue_manager - INFO - 🔄 Queue-Überwachung gestartet (Intervall: 120 Sekunden)
2025-06-01 02:27:45 - myp.queue_manager - INFO - ✅ Printer Queue Manager erfolgreich gestartet
2025-06-01 02:27:45 - myp.app - INFO - ✅ Printer Queue Manager erfolgreich gestartet
2025-06-01 02:27:45 - myp.app - INFO - Job-Scheduler gestartet
2025-06-01 02:27:45 - myp.app - INFO - Starte HTTP-Server auf 0.0.0.0:80
2025-06-01 02:27:46 - myp.printer_monitor - INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-01 02:27:46 - myp.printer_monitor - INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-01 02:27:46 - myp.printer_monitor - INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-01 02:27:48 - myp.app - INFO - Optimierte SQLite-Engine erstellt: /mnt/database/myp.db
2025-06-01 02:27:48 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-01 02:27:48 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-01 02:27:48 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-01 02:27:48 - myp.backup - INFO - BackupManager initialisiert (minimal implementation)
2025-06-01 02:27:48 - myp.analytics - INFO - 📈 Analytics Engine initialisiert
2025-06-01 02:27:49 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-01 02:27:49 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:27:49 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:27:49 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:27:49 - myp.dashboard - INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-01 02:27:49 - myp.security - INFO - 🔒 Security System initialisiert
2025-06-01 02:27:49 - myp.permissions - INFO - 🔐 Permission Template Helpers registriert
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.app - INFO - ==================================================
2025-06-01 02:27:49 - myp.app - INFO - 🚀 MYP (Manage Your Printers) wird gestartet...
2025-06-01 02:27:49 - myp.app - INFO - 📂 Log-Verzeichnis: /mnt/logs
2025-06-01 02:27:49 - myp.app - INFO - 📊 Log-Level: INFO
2025-06-01 02:27:49 - myp.app - INFO - 💻 Betriebssystem: Linux 6.1.0-37-amd64
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.app - INFO - 🌐 Hostname: debian
2025-06-01 02:27:49 - myp.app - INFO - 📅 Startzeit: 01.06.2025 02:27:49
2025-06-01 02:27:49 - myp.app - INFO - ==================================================
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.app - INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-01 02:27:49 - myp.app - ERROR - ❌ Fehler bei Datenbank-Setup: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.app - ERROR - Fehler beim Starten der Anwendung: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:52 - myp.printer_monitor - INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-01 02:27:58 - myp.printer_monitor - INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-01 02:28:04 - myp.printer_monitor - INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-01 02:28:07 - myp.app - INFO - Optimierte SQLite-Engine erstellt: /mnt/database/myp.db
2025-06-01 02:28:07 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-01 02:28:07 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-01 02:28:07 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-01 02:28:07 - myp.backup - INFO - BackupManager initialisiert (minimal implementation)
2025-06-01 02:28:07 - myp.analytics - INFO - 📈 Analytics Engine initialisiert
2025-06-01 02:28:08 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet
2025-06-01 02:28:08 - myp.maintenance - INFO - Wartungs-Scheduler gestartet
2025-06-01 02:28:08 - myp.multi_location - INFO - Standard-Standort erstellt
2025-06-01 02:28:08 - myp.dashboard - INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-01 02:28:08 - myp.security - INFO - 🔒 Security System initialisiert
2025-06-01 02:28:08 - myp.permissions - INFO - 🔐 Permission Template Helpers registriert
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.app - INFO - ==================================================
2025-06-01 02:28:08 - myp.app - INFO - 🚀 MYP (Manage Your Printers) wird gestartet...
2025-06-01 02:28:08 - myp.app - INFO - 📂 Log-Verzeichnis: /mnt/logs
2025-06-01 02:28:08 - myp.app - INFO - 📊 Log-Level: INFO
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.app - INFO - 💻 Betriebssystem: Linux 6.1.0-37-amd64
2025-06-01 02:28:08 - myp.app - INFO - 🌐 Hostname: debian
2025-06-01 02:28:08 - myp.app - INFO - 📅 Startzeit: 01.06.2025 02:28:08
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.app - INFO - ==================================================
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.app - INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-01 02:28:08 - myp.app - ERROR - ❌ Fehler bei Datenbank-Setup: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.app - ERROR - Fehler beim Starten der Anwendung: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:10 - myp.printer_monitor - INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-01 02:28:16 - myp.printer_monitor - INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-01 02:28:22 - myp.printer_monitor - INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s

View File

@ -1841,3 +1841,75 @@ WHERE printers.active = 1 AND printers.status = ?) AS anon_1]
2025-06-01 02:00:01 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range 2025-06-01 02:00:01 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range
2025-06-01 02:01:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range 2025-06-01 02:01:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: tuple index out of range
2025-06-01 02:03:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: '>' not supported between instances of 'NoneType' and 'int' 2025-06-01 02:03:31 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: '>' not supported between instances of 'NoneType' and 'int'
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.app - ERROR - ❌ Fehler bei Datenbank-Setup: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:27:49 - myp.app - ERROR - Fehler beim Starten der Anwendung: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für active_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für online_printers: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für jobs_timeline: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für printer_status: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für recent_jobs: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für system_alerts: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für user_activity: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.dashboard - ERROR - Fehler beim Laden der Widget-Daten für guest_requests: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.app - ERROR - ❌ Fehler bei Datenbank-Setup: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2025-06-01 02:28:08 - myp.app - ERROR - Fehler beim Starten der Anwendung: (sqlite3.OperationalError) disk I/O error
(Background on this error at: https://sqlalche.me/e/20/e3q8)

View File

@ -2781,3 +2781,12 @@
2025-06-01 01:49:31 - myp.scheduler - INFO - Scheduler gestartet 2025-06-01 01:49:31 - myp.scheduler - INFO - Scheduler gestartet
2025-06-01 01:53:43 - myp.scheduler - INFO - Scheduler-Thread beendet 2025-06-01 01:53:43 - myp.scheduler - INFO - Scheduler-Thread beendet
2025-06-01 01:53:43 - myp.scheduler - INFO - Scheduler gestoppt 2025-06-01 01:53:43 - myp.scheduler - INFO - Scheduler gestoppt
2025-06-01 02:19:20 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-01 02:21:06 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-01 02:21:08 - myp.scheduler - INFO - Scheduler-Thread gestartet
2025-06-01 02:21:08 - myp.scheduler - INFO - Scheduler gestartet
2025-06-01 02:27:44 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-01 02:27:45 - myp.scheduler - INFO - Scheduler-Thread gestartet
2025-06-01 02:27:45 - myp.scheduler - INFO - Scheduler gestartet
2025-06-01 02:27:48 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-01 02:28:07 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True

View File

@ -1,138 +1,97 @@
# MYP Platform - Python Dependencies # MYP Platform - Benötigte Python Dependencies
# Basierend auf tatsächlich verwendeten Imports in app.py # Nur tatsächlich verwendete Pakete
# Automatisch generiert am: 2025-05-29 19:41:49
# Installiere mit: pip install -r requirements.txt
# ===== CORE FRAMEWORK ===== # ===== CORE FRAMEWORK =====
Flask==3.0.0 Flask
Werkzeug==3.0.1 Werkzeug
# ===== FLASK EXTENSIONS ===== # ===== FLASK EXTENSIONS =====
Flask-Login==0.6.3 Flask-Login
Flask-WTF==1.2.1 Flask-WTF
Flask-SocketIO==5.3.6 Flask-SocketIO
WTForms==3.1.1 WTForms
Flask-CORS
# ===== DATABASE ===== # ===== DATABASE =====
SQLAlchemy==2.0.23 SQLAlchemy
# ===== SECURITY ===== # ===== SECURITY =====
cryptography==41.0.8 cryptography
bcrypt==4.1.2 bcrypt
PyJWT
itsdangerous
# ===== HTTP REQUESTS (für Online-Modus) ===== # ===== HTTP REQUESTS =====
requests==2.31.0 requests
urllib3==2.1.0 urllib3
# ===== HARDWARE INTEGRATION ===== # ===== HARDWARE INTEGRATION =====
# TP-Link Tapo Smart Plugs PyP100
PyP100==0.1.4 pyserial
pyusb
# ===== REAL-TIME FEATURES ===== # ===== REAL-TIME FEATURES =====
# WebSocket-Support mit Fallback-Optionen eventlet
eventlet==0.33.3 python-socketio
python-socketio==5.10.0
# ===== SCHEDULING & TASK MANAGEMENT ===== # ===== SCHEDULING =====
schedule==1.2.0 schedule
APScheduler==3.10.4 APScheduler
# ===== GIS & LOCATION SERVICES ===== # ===== GIS & LOCATION =====
geocoder==1.38.1 geocoder
# ===== DATA PROCESSING & EXPORT ===== # ===== DATA PROCESSING =====
# Excel-Export (optional) openpyxl
openpyxl==3.1.2 xlsxwriter
pandas==2.1.4 pandas
xlsxwriter==3.1.9 chardet
python-magic
python-magic-bin; sys_platform == "win32"
# CSV/JSON processing # ===== EMAIL =====
chardet==5.2.0 email-validator
# ===== EMAIL FUNCTIONALITY =====
# Email-Features für Benachrichtigungen
email-validator==2.1.0.post1
# ===== IMAGE PROCESSING ===== # ===== IMAGE PROCESSING =====
# Avatar und Bild-Upload Pillow
Pillow==10.1.0 qrcode
# ===== DEVELOPMENT & DEBUGGING ===== # ===== PDF GENERATION =====
# Nur für Development-Umgebung reportlab
# python-dotenv==1.0.0 weasyprint
# ===== DATE/TIME UTILITIES ===== # ===== DATE/TIME =====
python-dateutil==2.8.2 python-dateutil
pytz==2023.3 pytz
# ===== FILE HANDLING ===== # ===== LOGGING =====
# Datei-Upload und -Verarbeitung colorlog
python-magic==0.4.27
python-magic-bin==0.4.14 # Windows binary
# ===== LOGGING & MONITORING =====
# Erweiterte Logging-Features
colorlog==6.8.0
# ===== NETWORK & CONNECTIVITY =====
# Netzwerk-Utilities für Drucker-Kommunikation
netifaces==0.11.0
ping3==4.0.4
# ===== BACKUP & COMPRESSION =====
# Backup-Funktionalität
zipfile36==0.1.3
# ===== CONFIGURATION =====
# Konfiguration und Settings
configparser==6.0.0
# ===== VALIDATION =====
# Formular-Validierung
cerberus==1.3.5
marshmallow==3.20.1
# ===== CACHING (optional) =====
# Cache-Funktionalität
cachetools==5.3.2
# ===== UTILITIES =====
# Allgemeine Utilities
python-slugify==8.0.1
click==8.1.7
# ===== COMPATIBILITY =====
# Windows-Kompatibilität
pywin32==306; sys_platform == "win32"
wmi==1.5.1; sys_platform == "win32"
# ===== OPTIONAL DEPENDENCIES =====
# Für erweiterte Features (automatisch installiert wenn verfügbar)
# PDF-Generation (für Reports)
reportlab==4.0.7
weasyprint==60.2
# Erweiterte Kryptographie
cryptography==41.0.8
# QR-Code Generation (für OTP-Codes)
qrcode==7.4.2
# ===== PRODUCTION DEPLOYMENT =====
# WSGI Server für Produktion
gunicorn==21.2.0
waitress==2.1.2
# ===== SYSTEM MONITORING ===== # ===== SYSTEM MONITORING =====
# System-Überwachung psutil
psutil==5.9.6
# ===== ERROR TRACKING ===== # ===== FILE WATCHING =====
# Fehler-Tracking (optional) watchdog
# sentry-sdk[flask]==1.38.0
# ===== API DOCUMENTATION ===== # ===== VALIDATION =====
# API-Dokumentation (optional) cerberus
# flask-restx==1.3.0 marshmallow
# flasgger==0.9.7.1
# ===== UTILITIES =====
python-slugify
click
# ===== WINDOWS COMPATIBILITY =====
pywin32; sys_platform == "win32"
wmi; sys_platform == "win32"
colorama; sys_platform == "win32"
# ===== LINUX COMPATIBILITY =====
RPi.GPIO; sys_platform == "linux"
# ===== PRODUCTION DEPLOYMENT =====
gunicorn; sys_platform != "win32"
waitress
# ===== DEVELOPMENT =====
python-dotenv