# MYP Druckerverwaltung Ein umfassendes Druckerverwaltungssystem für Mercedes-Benz, optimiert für Debian/Linux-Systeme mit HTTPS-Kiosk-Modus. ## 🚀 Schnellstart ### Debian/Linux Kiosk-Installation (Empfohlen) ```bash # Repository klonen git clone cd backend # Konsolidiertes Setup-Skript ausführen sudo ./setup.sh ``` **Installationsoptionen**: 1. **Abhängigkeiten installieren** - System für manuelles Testen vorbereiten 2. **Vollständige Kiosk-Installation** - Automatischer Kiosk-Modus mit Remote-Zugang **Nach der Installation**: System mit `sudo reboot` neustarten für automatischen Kiosk-Modus. ### Entwicklungsumgebung (Windows) ```bash # Abhängigkeiten installieren pip install -r requirements.txt npm install # Entwicklungsserver starten python app.py --debug ``` ## 📋 Systemanforderungen ### Produktionsumgebung (Kiosk) - **Debian/Raspbian** (Raspberry Pi OS empfohlen) - Raspberry Pi 4 mit 2GB+ RAM - 16GB+ SD-Karte - HDMI-Monitor - Netzwerkverbindung ### Entwicklungsumgebung - **Windows 10/11** (nur für Entwicklung) - Python 3.8+ - Node.js 18+ - Git ## 🔧 Features ### Kern-Funktionalitäten - **Druckerverwaltung** mit Smart-Plug-Integration (TP-Link Tapo) - **Job-Management** mit Warteschlangen-System - **Benutzerverwaltung** mit Rollen und Berechtigungen - **Gast-Anfragen** für temporären Zugriff - **Echtzeit-Dashboard** mit Live-Statistiken - **Automatische Backups** und Wartung ### Kiosk-Modus Features - **HTTPS auf Port 443** mit automatischen SSL-Zertifikaten - **Chromium-Vollbildmodus** ohne Desktop-Environment - **Automatischer Login** und Browser-Start - **Watchdog-Überwachung** für Systemstabilität - **Remote-Zugang** via SSH und RDP mit Firewall-Schutz - **Responsive Design** für Desktop-Nutzung ### Sicherheit - **SSL/TLS-Verschlüsselung** (selbstsignierte Zertifikate) - **CSRF-Schutz** und Session-Management - **Rate-Limiting** und Eingabevalidierung - **Systemd-Service-Isolation** - **IPv6 vollständig deaktiviert** für erhöhte Sicherheit - **IP-Spoofing-Schutz** und DDoS-Abwehr - **TCP-Optimierungen** und RFC-Compliance ## 🏗️ Architektur ### Backend - **Flask 3.1.1** - Web-Framework - **SQLAlchemy 2.0.36** - ORM und Datenbankzugriff - **SQLite** - Eingebettete Datenbank - **Gunicorn** - WSGI-Server für Produktion ### Frontend - **TailwindCSS** - Utility-First CSS Framework - **Chart.js** - Datenvisualisierung - **FontAwesome** - Icons - **Vanilla JavaScript** - Interaktivität ### System-Integration - **systemd** - Service-Management - **OpenSSL** - SSL-Zertifikat-Generierung - **Chromium** - Kiosk-Browser - **X11** - Minimale Grafikumgebung ## 📁 Projektstruktur ``` backend/ ├── app.py # Hauptanwendung mit HTTPS-Support ├── models.py # Datenbankmodelle ├── setup.sh # Konsolidiertes Setup-Skript ├── requirements.txt # Python-Abhängigkeiten ├── package.json # Node.js-Abhängigkeiten ├── ├── systemd/ # Systemd-Service-Dateien │ ├── myp-https.service # HTTPS-Backend-Service │ ├── myp-kiosk.service # Kiosk-Browser-Service │ ├── kiosk-watchdog.service # Überwachungsservice │ └── kiosk-watchdog-python.service # Python-Watchdog ├── ├── blueprints/ # Flask-Blueprints │ ├── auth.py # Authentifizierung │ ├── users.py # Benutzerverwaltung │ ├── printers.py # Druckerverwaltung │ ├── jobs.py # Job-Management │ └── guest.py # Gast-Anfragen ├── ├── config/ # Konfigurationsdateien │ └── settings.py # Hauptkonfiguration ├── ├── utils/ # Hilfsfunktionen │ ├── ssl_config.py # SSL-Zertifikat-Management │ ├── logging_config.py # Logging-Konfiguration │ ├── queue_manager.py # Job-Warteschlange │ └── printer_monitor.py # Drucker-Überwachung ├── ├── static/ # Statische Dateien │ ├── css/ # Stylesheets │ ├── js/ # JavaScript │ └── icons/ # Icons und Bilder ├── ├── templates/ # Jinja2-Templates ├── docs/ # Dokumentation ├── logs/ # Log-Dateien └── uploads/ # Hochgeladene Dateien ``` ## 🔧 Installation ### Option 1: Automatische Installation mit setup.sh (Empfohlen) ```bash # Als Root ausführen sudo ./setup.sh # Menüoptionen: # 1. Abhängigkeiten installieren für manuelles Testen # 2. Vollständige Kiosk-Installation mit Remote-Zugang # 3. Beenden ``` **Installationsmodi**: - **Option 1**: Ideal für Entwicklung, manuelle Tests und Debugging - **Option 2**: Vollständige Produktionsinstallation mit automatischem Kiosk-Start ### Option 2: Manuelle Installation #### Schritt 1: System vorbereiten ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install -y python3 python3-pip nodejs npm git ``` #### Schritt 2: Abhängigkeiten installieren ```bash # Python-Pakete (ohne virtuelles Environment) pip3 install -r requirements.txt --break-system-packages # Node.js-Pakete npm install # TailwindCSS kompilieren npm run build:css ``` #### Schritt 3: SSL-Zertifikate generieren ```bash python3 -c " import sys; sys.path.insert(0, '.') from utils.ssl_config import ensure_ssl_certificates ensure_ssl_certificates('.', True) " ``` #### Schritt 4: Services einrichten ```bash # Services aus systemd/ Verzeichnis kopieren sudo cp systemd/*.service /etc/systemd/system/ sudo systemctl daemon-reload # HTTPS-Service aktivieren sudo systemctl enable myp-https.service sudo systemctl start myp-https.service # Kiosk-Service aktivieren (optional) sudo systemctl enable myp-kiosk.service ``` ## 🌐 Zugriff ### Lokaler Zugriff - **HTTPS**: `https://localhost:443` - **HTTP (Entwicklung)**: `http://localhost:5000` (--debug) ### Netzwerk-Zugriff - **HTTPS**: `https://192.168.0.105:443` (LAN) ### Standard-Anmeldedaten - **Benutzername**: `admin@mercedes-benz.com` - **Passwort**: `744563017196A` ⚠️ **Wichtig**: Ändern Sie das Standard-Passwort nach der ersten Anmeldung! ## 🔒 Sicherheit ### SSL/TLS - **TLS 1.2+** erforderlich - **Starke Cipher-Suites** konfiguriert - **Selbstsignierte Zertifikate** für localhost - **Automatische Erneuerung** bei Ablauf ### Anwendungssicherheit - **CSRF-Schutz** aktiviert - **Session-Management** mit Timeout - **Rate-Limiting** für API-Endpunkte - **Eingabevalidierung** und Sanitization ### System-Sicherheit - **Minimale X11-Umgebung** ohne Desktop - **Kiosk-User** ohne Sudo-Rechte - Chromium-Kiosk: Beschränkungen implementiert in Browserinstanz selbst ## 🔄 Updates ### Anwendungs-Updates ```bash cd /opt/myp git pull origin main sudo pip3 install -r requirements.txt --break-system-packages --upgrade sudo npm install # Services mit setup.sh aktualisieren sudo ./setup.sh # Option 3: Nur Services installieren sudo systemctl restart myp-https.service ``` ### System-Updates ```bash sudo apt-get update && sudo apt-get upgrade -y sudo reboot ``` ## 📄 Lizenz Dieses Projekt ist für den internen Gebrauch bei Mercedes-Benz entwickelt. ## 🤝 Beitragen 1. Fork des Repositories erstellen 2. Feature-Branch erstellen (`git checkout -b feature/AmazingFeature`) 3. Änderungen committen (`git commit -m 'Add some AmazingFeature'`) 4. Branch pushen (`git push origin feature/AmazingFeature`) 5. Pull Request erstellen ## 📞 Support - **Dokumentation**: [`docs/`](docs/) Verzeichnis - **Setup-Anleitung**: [`docs/SETUP_ANLEITUNG.md`](docs/SETUP_ANLEITUNG.md) - **Issues**: GitHub Issues für Bug-Reports - **Logs**: Automatische Log-Sammlung mit `setup.sh` --- ## 🆕 Version 4.1.0 - Erweiterte Konfliktbehandlung (2025-01-06) ### ✨ Neue Features - **🔧 Intelligente Druckerkonflikt-Management-Engine**: Automatische Erkennung und Lösung von Zeitüberschneidungen - **🎯 Smart-Empfehlungssystem**: KI-basierte Druckerzuweisung mit Scoring-Algorithmus basierend auf: - Verfügbarkeit und Auslastung - Prioritätsstufen (urgent, high, normal, low) - Zeitfenster-Optimierung (Tag-/Nachtschicht) - Job-Dauer-Eignung (Express vs. Langzeit-Jobs) - **📊 Echtzeit-Verfügbarkeitsanzeige**: Live-Dashboard mit Druckerstatus und Auslastung - **⚠️ Proaktive Konfliktprävention**: Echzeit-Validierung während Formulareingabe - **🚀 Automatische Konfliktlösung**: Ein-Klick-Lösung für erkannte Konflikte ### 🔧 Technische Verbesserungen - **Neue API-Endpunkte**: - `/api/calendar/check-conflicts` - Detaillierte Konfliktanalyse - `/api/calendar/resolve-conflicts` - Automatische Konfliktlösung - `/api/calendar/printer-availability` - Echtzeit-Verfügbarkeit - **ConflictManager-Klasse** mit umfassender Konfliktbehandlung - **Erweiterte Frontend-Integration** mit modalen Dialogen und Toast-Benachrichtigungen - **Smart-Assignment-Algorithmus** mit gewichteter Bewertung ### 📋 Konfliktarten und Behandlung 1. **Zeitüberschneidungen** - Automatische Alternative oder Zeitverschiebung 2. **Druckerausfälle** - Sofortige Neuzuweisung auf verfügbare Drucker 3. **Prioritätskonflikte** - Intelligente Umplanung bei höherprioren Jobs 4. **Ressourcenkonflikte** - Warteschlange mit automatischer Reaktivierung ### 🎨 Benutzeroberfläche - **Konflikt-Benachrichtigungsmodal** mit detaillierten Lösungsvorschlägen - **Verfügbarkeits-Dashboard** mit visuellen Status-Indikatoren - **Smart-Empfehlungs-Widget** mit Confidence-Scores - **"Konflikte prüfen" Button** für manuelle Validierung - **Echtzeit-Verfügbarkeitsanzeige** mit Aktualisierungsbutton ### 📚 Dokumentation - **[`docs/DRUCKERKONFLIKT_MANAGEMENT.md`](docs/DRUCKERKONFLIKT_MANAGEMENT.md)** - Umfassende Dokumentation des Konfliktsystems - Detaillierte API-Referenz für alle neuen Endpunkte - Scoring-Algorithmus-Dokumentation mit Beispielen - Troubleshooting-Guide für Konfliktbehandlung ### 🔄 Migration ```bash # Keine Datenbankmigrationen erforderlich # Frontend-Assets aktualisieren npm run build:css # Neue JavaScript-Module laden # (Automatisch über Template-Integration) ``` --- ## 🔄 Version 4.0.4 - Setup-Korrekturen (2025-01-12) ### ✅ Behobene Probleme - **Python-Import-Fehler behoben**: Flask-App kann jetzt korrekt importiert werden - **Requirements.txt korrigiert**: Alle Versionskonflikte beseitigt (Werkzeug + Flask) - **Internetverbindung-Erkennung**: Multi-Methoden-Prüfung (HTTP/DNS/ICMP/Gateway) - **PYTHONPATH-Konflikte behoben**: Robuste Umgebungsvariablen-Behandlung - **Robuste Installation**: Mehrstufige Validierung und Fallback-Mechanismen - **Python-Umgebung**: Automatische PYTHONPATH-Konfiguration implementiert ### 🔧 Verbesserungen - Erweiterte Fehlerbehandlung im Setup-Skript - Sichere Test-Umgebung für Flask-App-Validierung - Performance-Optimierungen für pip-Installation - Robuste Netzwerk-Erkennung für Firewalls/Proxys/VirtualBox - Umfassende Dokumentation der Korrekturen ### 📋 Nach Update empfohlen ```bash # Setup-Skript erneut ausführen für korrigierte Installation sudo ./setup.sh # Option 1 zum Testen der Korrekturen # Das Setup sollte jetzt reibungslos durchlaufen ohne: # - Python-Import-Fehler # - PYTHONPATH-Konflikte # - Internetverbindung-Fehlmeldungen ``` **Details**: Siehe [`docs/SETUP_KORREKTUREN.md`](docs/SETUP_KORREKTUREN.md) --- **Version**: 4.0.4 (Korrigiert) **Plattform**: Debian/Linux (Raspberry Pi OS) **Modus**: HTTPS Kiosk (Port 443) **Setup**: Konsolidiertes `setup.sh` System **Entwickelt für**: Mercedes-Benz MYP