Projektarbeit-MYP/docs/BLUEPRINT_INTEGRATION.md

4.4 KiB

Blueprint-Integration in app.py

Übersicht

Alle Flask-Blueprints wurden erfolgreich in die zentrale app.py Datei integriert. Dies vereinfacht die Anwendungsstruktur und reduziert die Komplexität der Codebase.

Durchgeführte Änderungen

1. Entfernte Blueprint-Dateien

  • backend/app/blueprints/auth.py - Authentifizierungs-Routen
  • backend/app/blueprints/user.py - Benutzer-Verwaltungsrouten
  • backend/app/blueprints/api.py - API-Routen
  • backend/app/blueprints/kiosk_control.py - Kiosk-Steuerungsrouten
  • backend/app/blueprints/__init__.py - Blueprint-Initialisierung
  • Gesamter backend/app/blueprints/ Ordner wurde entfernt

2. Integrierte Funktionalitäten in app.py

Authentifizierungs-Routen (ehemals auth.py)

  • /auth/login - Login-Seite und -Verarbeitung (GET/POST)
  • /auth/logout - Logout-Funktionalität (GET/POST)
  • /auth/api/login - API-Login für Frontend
  • /auth/api/callback - API-Callback-Verarbeitung

Benutzer-Routen (ehemals user.py)

  • /user/profile - Benutzerprofil anzeigen
  • /user/settings - Benutzereinstellungen anzeigen
  • /user/update-profile - Profil aktualisieren (POST)
  • /user/api/update-settings - API für Einstellungen (POST)
  • /user/update-settings - Einstellungen aktualisieren (POST)
  • /user/change-password - Passwort ändern (POST)
  • /user/export - Benutzerdaten exportieren (GET)
  • /user/profile - Profil-API (PUT)

Kiosk-Steuerungsrouten (ehemals kiosk_control.py)

  • /api/kiosk/status - Kiosk-Status abfragen (GET)
  • /api/kiosk/deactivate - Kiosk deaktivieren (POST)
  • /api/kiosk/activate - Kiosk aktivieren (POST)
  • /api/kiosk/restart - System-Neustart (POST)

Job-Management-Routen (ehemals api.py)

  • /api/jobs - Jobs abrufen/erstellen (GET/POST)
  • /api/jobs/<id> - Spezifischen Job abrufen/löschen (GET/DELETE)
  • /api/jobs/active - Aktive Jobs abrufen (GET)
  • /api/jobs/current - Aktuellen Job abrufen (GET)
  • /api/jobs/<id>/extend - Job verlängern (POST)
  • /api/jobs/<id>/finish - Job beenden (POST)
  • /api/jobs/<id>/cancel - Job abbrechen (POST)

Drucker-Management-Routen (ehemals api.py)

  • /api/printers - Drucker abrufen/erstellen (GET/POST)
  • /api/printers/status - Drucker-Status mit Live-Check (GET)
  • /api/printers/<id> - Spezifischen Drucker abrufen/bearbeiten/löschen (GET/PUT/DELETE)

Admin-Routen

  • /api/admin/users - Benutzer verwalten (GET)
  • /api/admin/users/<id> - Benutzer bearbeiten/löschen (PUT/DELETE)
  • /api/stats - Statistiken abrufen (GET)

UI-Routen

  • / - Hauptseite
  • /dashboard - Dashboard
  • /printers - Drucker-Übersicht
  • /jobs - Jobs-Übersicht
  • /stats - Statistiken
  • /admin-dashboard - Admin-Panel
  • /demo - Komponenten-Demo

3. Hilfsfunktionen

  • check_printer_status() - Einzelner Drucker-Status-Check
  • check_multiple_printers_status() - Paralleler Status-Check für mehrere Drucker
  • job_owner_required - Decorator für Job-Besitzer-Berechtigung

4. Fehlerbehandlung

  • 404 - Seite nicht gefunden
  • 500 - Interner Serverfehler
  • 403 - Zugriff verweigert

5. Entfernte Imports

Aus app.py entfernt:

from blueprints.auth import auth_bp
from blueprints.user import user_bp
from blueprints.api import api_bp
from blueprints.kiosk_control import kiosk_bp

Und die entsprechenden Blueprint-Registrierungen:

app.register_blueprint(auth_bp, url_prefix="/auth")
app.register_blueprint(user_bp, url_prefix="/user")
app.register_blueprint(api_bp, url_prefix="/api")
app.register_blueprint(kiosk_bp, url_prefix="/api/kiosk")

Vorteile der Integration

  1. Vereinfachte Struktur: Alle Routen sind in einer zentralen Datei
  2. Reduzierte Komplexität: Keine Blueprint-Verwaltung mehr nötig
  3. Bessere Übersicht: Alle Funktionalitäten auf einen Blick
  4. Einfachere Wartung: Weniger Dateien zu verwalten
  5. Direkte Imports: Keine Blueprint-spezifischen Imports mehr nötig

Getestete Funktionalitäten

Alle ursprünglichen Funktionalitäten wurden beibehalten:

  • Benutzer-Authentifizierung
  • Job-Management
  • Drucker-Verwaltung
  • Admin-Funktionen
  • Kiosk-Modus
  • API-Endpunkte
  • Fehlerbehandlung

Nächste Schritte

Die Anwendung ist jetzt bereit für den Betrieb ohne Blueprints. Alle Routen und Funktionalitäten sind vollständig in app.py integriert und funktionsfähig.


Datum: $(date) Status: Abgeschlossen Getestet: Alle Routen funktional