Files
Projektarbeit-MYP/backend
Till Tomczak a8f27179b5 Es scheint, dass Sie eine Reihe von Dateien und Verzeichnissen in Ihrem Backend-Projekt bearbeitet haben. Hier ist ein zusammenfassender Überblick über die Änderungen:
1. **Entfernung von 'node_modules'**: Es scheint, dass Sie den 'node_modules'-Ordner entfernt oder aktualisiert haben, da einige Dateien wie '.gitignore', 'package
2025-06-19 22:13:49 +02:00
..
2025-06-16 09:42:26 +02:00

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)

# Repository klonen
git clone <repository-url>
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)

# 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                 # Haupt-Anwendung mit Production- und Development-Modi
├── models.py              # Datenbankmodelle
├── requirements.txt       # Python-Abhängigkeiten
├── README.md              # Diese Datei
├── CLAUDE.md              # Claude-Entwicklungsdokumentation
├── 
├── setup/                 # 🔧 Setup & Installation
│   ├── setup_https_only.sh         # HTTPS-Setup-Skript
│   ├── setup_tapo_outlets.py       # Smart-Plug-Konfiguration
│   └── create_test_tapo_printers.py # Test-Drucker-Setup
├── 
├── ssl/                   # 🔒 SSL & Sicherheit
│   ├── RASPBERRY_PI_SSL_FIX.md     # SSL-Konfiguration für Raspberry Pi
│   ├── QUICK_SSL_FIX.md            # Schnelle SSL-Fixes
│   ├── fix_ssl_browser.py          # Browser-SSL-Korrekturen
│   └── ssl_fix.py                  # SSL-Fehlerbehebung
├── 
├── debug/                 # 🐛 Debug & Entwicklung
│   └── debug_admin.py     # Admin-Debug-Tools
├── 
├── diagrams/              # 📊 Architektur-Diagramme
│   ├── netzwerkdiagramm.svg        # Netzwerk-Architektur (SVG)
│   └── netzwerkdiagramm.mmd        # Mermaid-Diagramm-Quelle
├── 
├── docs/                  # 📚 Dokumentation
│   ├── COMMON_ERRORS.md            # Häufige Fehler & Lösungen
│   ├── PRODUCTION_HTTPS_SETUP.md   # Produktions-HTTPS-Setup
│   ├── EINFACHE_ANLEITUNG.md       # Einfache Installationsanleitung
│   ├── SETUP_IMPROVEMENTS.md       # Setup-Verbesserungen
│   ├── CREDENTIALS_INTEGRATION.md  # Anmeldedaten-Integration
│   ├── SETUP_README.md             # Setup-Dokumentation
│   ├── TAPO_CONTROL.md             # Smart-Plug-Steuerung
│   ├── MYP_BENUTZERHANDBUCH.md     # Benutzerhandbuch
│   ├── MYP_SYSTEMDOKUMENTATION.md  # Systemdokumentation
│   └── RASPBERRY_PI_PERFORMANCE.md # Performance-Optimierung
├── 
├── scripts/               # 🔨 Hilfsskripte
│   ├── screenshot_tool.py          # Screenshot-Tool
│   ├── test_protocol_generator.py  # Testprotokoll-Generator
│   └── quick_unicode_fix.py        # Unicode-Fixes
├── 
├── 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
├── database/             # 💾 Datenbank-Dateien
├── logs/                 # 📝 Log-Dateien
├── uploads/              # 📤 Hochgeladene Dateien
├── instance/             # 🏠 Instanz-spezifische Dateien
├── certs/                # 🔐 SSL-Zertifikate
└── legacy/               # 📦 Legacy-Code

🔧 Installation

Option 1: Automatische Installation mit setup.sh (Empfohlen)

# 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

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

# 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

python3 -c "
import sys; sys.path.insert(0, '.')
from utils.ssl_config import ensure_ssl_certificates
ensure_ssl_certificates('.', True)
"

Schritt 4: Services einrichten

# 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

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

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/ Verzeichnis
  • Setup-Anleitung: 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 - Umfassende Dokumentation des Konfliktsystems
  • Detaillierte API-Referenz für alle neuen Endpunkte
  • Scoring-Algorithmus-Dokumentation mit Beispielen
  • Troubleshooting-Guide für Konfliktbehandlung

🔄 Migration

# 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

# 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


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