Projektarbeit-MYP/IHK_Projektdokumentation/MYP_Projektdokumentation_Final.md

30 KiB
Raw Blame History

MYP – Manage Your Printer

Vernetzte 3D-Druck-Reservierungsplattform mit IoT-Anbindung und zentraler VerwaltungsoberflÀche

Dokumentation der betrieblichen Projektarbeit

Fachinformatiker fĂŒr digitale Vernetzung


PrĂŒfungsbewerber: Till Tomczak Ausbildungsbetrieb: Mercedes-Benz AG PrĂŒfungstermin: Sommer 2025 Bearbeitungszeitraum: 15. April – 20. Mai 2025 Projektumfang: 35 Stunden


Inhaltsverzeichnis

  1. Einleitung 1.1 Ausgangssituation und Problemstellung 1.2 Projektziele 1.3 Projektabgrenzung 1.4 Projektumfeld und betriebliche Schnittstellen
  2. Projektplanung 2.1 Zeitplanung nach V-Modell 2.2 Ressourcenplanung 2.3 QualitÀtssicherungsplanung
  3. Analyse und Bewertung 3.1 Bewertung der vorhandenen Systemarchitektur 3.2 Bewertung der heterogenen IT-Landschaft 3.3 Analyse der IT-sicherheitsrelevanten Bedingungen 3.4 Anforderungsgerechte Auswahl der Übertragungssysteme
  4. Systemarchitektur und Schnittstellenkonzeption 4.1 Gesamtsystemarchitektur 4.2 Technische Systemarchitektur 4.3 Schnittstellenkonzeption 4.4 Datenmodell
  5. Umsetzung 5.1 Implementierung der Backend-Infrastruktur 5.2 IoT-Integration und Hardware-Steuerung 5.3 Sicherheitsimplementierung 5.4 Systemkonfiguration und Deployment
  6. Test und Optimierung 6.1 TestdurchfĂŒhrung und -ergebnisse 6.2 Sicherheitstests 6.3 SystemstabilitĂ€t und Monitoring
  7. Projektabschluss 7.1 Soll-Ist-Vergleich 7.2 Projektergebnisse und Erkenntnisse 7.3 Optimierungsmöglichkeiten 7.4 Formale Projektabnahme
  8. Anlagen
  9. Glossar

1. Einleitung

1.1 Ausgangssituation und Problemstellung

Die Technische BerufsausbildungsstĂ€tte (TBA) der Mercedes-Benz AG am Standort Berlin verfĂŒgt ĂŒber sechs 3D-Drucker verschiedener Hersteller (Prusa, Anycubic), die als wichtige Ressource fĂŒr die praktische Berufsausbuldung dienen. Diese GerĂ€te weisen jedoch technische Limitierungen auf; Sie verfĂŒgen weder ĂŒber Netzwerkschnittstellen noch ĂŒber einheitliche Steuerungsmöglichkeiten.

Das - wollte man es als ein solches bezeichnen - bestehende Reservierungssystem basierte auf einem analogen Whiteboard, was zu systematischen Problemen fĂŒhrte. Doppelbuchungen traten auf, wenn mehrere Nutzer zeitgleich etwas drucken wollten. Die manuelle Aktivierung und Deaktivierung der GerĂ€te wurde hĂ€ufig versĂ€umt, was zu unnötigem Energieverbrauch und erhöhtem Verschleiß fĂŒhrte. Eine verlĂ€ssliche Dokumentation der tatsĂ€chlichen Nutzungszeiten existierte nicht, wodurch weder aussagekrĂ€ftige BetĂ€tigungs- und Verantwortungszuordnung, noch eine verursachungsgerechte Kostenzuordnung möglich waren.

Ein vorhandener Frontend-Prototyp des ehemaligen Auszubildenden aus der Fachrichtung der Daten- und Prozessanalyse Torben Haack bot eine moderne BenutzeroberflĂ€che, verfĂŒgte jedoch nicht ĂŒber eine funktionsfĂ€hige Backend-Anbindung zur praktischen Nutzung. Diese Ausgangslage bot mir eine fantastische Gelegenheit, im Rahmen meiner Projektarbeit eine weiterfĂŒhrende und meiner Fachrichtung entsprechende Lösung zu entwickeln. Das Projekt weckte – im Gegensatz zu anderen verfĂŒgbaren Projektoptionen, die eher einen pflichtgemĂ€ĂŸen Charakter hĂ€tten, meine intrinsische Motivation deutlich.

1.2 Projektziele

Das Projekt "MYP – Manage Your Printer" zielt auf die vollstĂ€ndige Digitalisierung des 3D-Drucker-Reservierungsprozesses durch die Etablierung cyberphysischer Kommunikation mit den relevanten Hardwarekomponenten ab.

Die primÀren Ziele umfassen die Entwicklung einer webbasierten Reservierungsplattform, die Integration automatischer Hardware-Steuerung via IoT-Komponenten, die Implementierung einer vernetzten, zentralen VerwaltungsoberflÀche sowie die Etablierung robuster Authentifizierung und Rechteverwaltung; ganz auch im Sinne der Sicherheit zur Zufriedenheit der IT-Abteilung. Als sekundÀre Ziele wurden die Optimierung der Energieeffizienz durch automatisierte Steuerung, die Bereitstellung von Nutzungsstatistiken und Monitoring, die GewÀhrleistung einer herstellerunabhÀngigen Lösung sowie die Einhaltung zusÀtzlicher Sicherheitsrichtlinien definiert.

1.3 Projektabgrenzung

Der Projektumfang wurde pragmatisch Umsetzung einer funktionsfĂ€higen Lösung fokussiert; auch wenn der eigene Ehrgeiz weit darĂŒber hinaus ging, musste das Ganze im (zeitlichen) Rahmen bleiben. PrimĂ€rer Fokus des Projektes war die Entwicklung des Backends - sprich: der funktionalen Vernetzung; die Datenbankanbindung fĂŒr die Reservierungsverwaltung, die IoT-Integration via Smart-Plugs, Authentifizierung und Autorisierung sowie der Test der Schnittstellen und Netzwerkverbindungen, und nicht zuletzt die WLAN-Integration der Raspberry Pi-Plattform.

Ausgeschlossen aus dem Projektumfang wurde die direkte Kommunikation mit 3D-Druckern (aufgrund fehlender Schnittstellen), die Integration in das unternehmensweite Intranet (Zeitrestriktionen), die Übertragung von Druckdaten oder (On-Device) StatusĂŒberwachung der Drucker sowie umfangreiche Hardware-Modifikationen bestehender GerĂ€te.

Die Integration in das unternehmensweite Intranet war ursprĂŒnglich eingeplant. Aufgrund zeitlicher BeschrĂ€nkungen und der begrenzten Projektdauer musste dieser Aspekt jedoch zurĂŒckgestellt werden. Die notwendigen administrativen Prozesse innerhalb des Konzerns, insbesondere die Genehmigungsverfahren und die Beantragung der erforderlichen Zertifikate, hĂ€tten den vorgegebenen Zeitrahmen ĂŒberschritten. Daher wurde in Abstimmung mit Herrn Noack und Kollegen entschieden, diese Integration zu einem spĂ€teren Zeitpunkt nach Projektabschluss zu realisieren.

1.4 Projektumfeld und betriebliche Schnittstellen

Das Projekt wurde im Rahmen der Ausbildung zum Fachinformatiker fĂŒr digitale Vernetzung in der TBA durchgefĂŒhrt. Die organisatorischen Rahmenbedingungen sind somit durch konzerninternen Sicherheitsrichtlinien und zeitintensiven, schwer einsehbaren IT-Prozesse geprĂ€gt.

Die zentralen Schnittstellen umfassten die IT-Abteilung fĂŒr die Genehmigung von Netzwerkkonfigurationen und netzwerktechnischen Gangbarkeiten, die Ausbildungsleitung (in dem Fall insbesondere meinen Ausbilder Martin Noack) fĂŒr fachliche Betreuung und Ressourcenbereitstellung, die Endanwender - wĂ€hrend des Projektes noch primĂ€r im Sinne der Ausbilder - ebenfalls jedoch in Form von Auszubildenden der TBA sowie die Hardware-Integration ĂŒber die smarten Tapo-Steckdosen als agierende IoT-Gateways zu den 3D-Druckern.


2. Projektplanung

2.1 Zeitplanung nach V-Modell

Die Projektplanung folgte dem V-Modell mit agilen Elementen, unterteilt in fĂŒnf Projektphasen. Der Gesamtzeitraum erstreckte sich vom 15. April bis 05. Juni 2025 mit einem ursprĂŒnglich geplanten Projektumfang von 36 Stunden, der mit 38 Stunden geringfĂŒgig ĂŒberschritten wurde.

Phase 1 (15.-19. April, 6 Stunden) Jene Phase widmete sich der Projektplanung und -Analyse. Die Analyse der aktuellen Prozesse und Systeme, die Bewertung der vorhandenen Netzwerkarchitektur sowie die PrĂŒfung der Sicherheitsanforderungen standen dabei im Fokus. RegelmĂ€ĂŸige Abstimmungen mit meinem Ausbilder halfen, die Planung zu prĂ€zisieren und aus den Erfahrungen mit den systeminternen Prozessen des ehemaligen Azubis zu lernen.

Phase 2 (22.-26. April, 6 Stunden) konzentrierte sich auf die Entwicklung der Systemarchitektur und Schnittstellenkonzeption. Die Definition der Kommunikationswege (WLAN, API), die Auswahl geeigneter Hard- und Softwarekomponenten sowie die Planung des konzeptionellen Aufbaus (Nutzer- und Rechtverwaltung, FunktionalitÀten und entsprechende API-Routen etc.) bildeten Schwerpunkte dieser Phase.

Phase 3 (29. April - 10. Mai, 16 Stunden) umfasste die Umsetzung. Diese Phase beinhaltete die Konfiguration des Raspberry Pi fĂŒr die WLAN-Druckeranbindung, die Entwicklung des Webportals, den Aufbau der Datenbank sowie die Implementierung der Authentifizierung und Autorisierung. Die zwei Stunden Mehraufwand entstanden durch unerwartete Herausforderungen bei der Smart-Plug-Integration.

Phase 4 (13.-17. Mai, 6 Stunden) diente dem Test und der Optimierung. Funktionstest mit mehreren Nutzern und Druckern, Fehleranalyse und -behebung sowie die Optimierung der Datenverarbeitung und Darstellung standen im Mittelpunkt dieser Phase.

Phase 5 (20. Mai - 5. Juni, 4 Stunden) wurde fĂŒr die Dokumentation genutzt. Die Beschreibung der Systemarchitektur und AblĂ€ufe, die Darstellung der technischen Umsetzung und die Bewertung der erreichten Ziele und möglicher Erweiterungen wurden in dieser Phase abgeschlossen.

2.2 Ressourcenplanung

Die Hardware-Komponenten umfassten einen Raspberry Pi 5 (8GB RAM, 128GB Speicher) als zentrale Serverplattform, nachdem sich der ursprĂŒnglich vorgesehene Raspberry Pi 4 als unterdimensioniert erwiesen hatte. Sechs TP-Link Tapo P110 Smart-Plugs bildeten das HerzstĂŒck der IoT-Integration. Ein 19-Zoll-Serverschrank wurde fĂŒr die professionelle Unterbringung beschafft, ergĂ€nzt durch privat eingabrachte Komponenten wie LĂŒftereinheiten und Kabelmanagement-Systeme.

Der Software-Stack basierte vollstĂ€ndig auf Open-Source-Technologien. Das Backend wurde mit Python 3.11, Flask 2.3, SQLAlchemy 2.0 und SQLite implementiert. FĂŒr das Frontend wurde nach dem Scheitern der Next.js-Integration eine eigene Lösung mit HTML/CSS/JavaScript als Notlösung entwickelt, wobei fĂŒr die Interface-Entwicklung KI-UnterstĂŒtzung verwendet wurde, da dies meiner Fachrichtung zu wider ist. Das System lĂ€uft auf Raspbian OS mit systemd-Services und OpenSSL. Die IoT-Gateway Integration zu den smarten Steckdosen der jeweiligen 3D-Drucker erfolgte ĂŒber die PyP100-Bibliothek.

Die Gesamtkosten beliefen sich auf weniger als die HĂ€lfte - sprich < 300 Euro, deutlich unter der ursprĂŒnglichen Kalkulation von 600 Euro. Die Kostenersparnis resultierte aus der Nutzung vorhandener Hardware-Komponenten und der breitlĂ€ufig kompatiblen Umsetzbarkeit des Projektes.

2.3 QualitÀtssicherungsplanung

Das QualitĂ€tssicherungskonzept orientierte sich am V-Modell. FĂŒr jede Entwicklungsphase wurden korrespondierende TestaktivitĂ€ten definiert. Eine VirtualBox-basierte Entwicklungsumgebung ermöglichte Backend-Tests ohne GefĂ€hrdung der Produktivumgebung. Hardware-in-the-Loop-Tests mit echten WLAN-Steckdosen gleichen Modells gewĂ€hrleisteten realitĂ€tsnahe Testbedingungen. Die separate Produktionsumgebung auf dem Raspberry Pi diente finalen Systemtests.

Die Teststrategien umfassten isolierte Tests kritischer Komponenten mit einer breitlĂ€ufigen und fast gĂ€nzlichen Codeabdeckung. Sicherheitstests fokussierten sich auf grundlegende Angriffsvektoren wie Brute-Forcing, SQL-Injection oder Man-in-the-Middle Attacken; entsprechend wurden Rate-Limits fĂŒr den API, verschlĂŒsselte Verbindungen via HTTPS, User-Input-Bereinigung und ein zusĂ€tzlich abgesicherter Kiosk-Modus installiert - mit der Experimentierfreudigkeit der Azubis im Hinterkopf.


3. Analyse und Bewertung

3.1 Bewertung der vorhandenen Systemarchitektur

Der Ist-Zustand prĂ€sentierte sich als fragmentierte Landschaft. Ein Frontend-Prototyp (Next.js) existierte ohne Backend-Anbindung, die 3D-Drucker operierten isoliert ohne NetzwerkfĂ€higkeit, die Reservierungsverwaltung erfolgte analog ĂŒber ein Whiteboard, und ein Raspberry Pi 4 stand als ungenutzter Server zur VerfĂŒgung.

Die identifizierten Defizite umfassten die fehlende cyberphysisch-vernetzte Integration, keine zentrale oder lĂ€ngerfristige Datenhaltung, ineffiziente manuelle Prozesse sowie Probleme bei der Zuweisung von Verantwortlichkeiten durch die analoge Verwaltung. Diese Analyse bildete die Grundlage fĂŒr die Entwicklung einer integrierten Lösung.

3.2 Bewertung der heterogenen IT-Landschaft

Die IT-Infrastruktur der TBA prÀsentierte sich als gewachsene Umgebung ohne mir direkt ersichtliche bestehende, gesonderte VLAN-Strukturen. Die 3D-Drucker verschiedener Hersteller erforderten eine zusammenbindende Abstraktionsebene.

Der dementsprechend gewĂ€hlte Lösungsansatz ĂŒber IoT-Integration mittels WLAN-Steckdosen ermöglichte eine universelle Steuerung unabhĂ€ngig vom Druckermodell durch Abstraktion auf die Stromversorgungsebene. Diese Entscheidung basierte nicht zuletzt auf meiner privaten Erfahrung mit TAPO-GerĂ€ten, wobei sich die programmatische Ansteuerung als deutlich komplexer herausstellte als die private Nutzung.

3.3 Analyse der IT-sicherheitsrelevanten Bedingungen

Die Sicherheitsanforderungen des Unternehmens diktierten maßgeblich die Systemarchitektur. Keine permanente Internetverbindung war zulĂ€ssig geschweige denn möglich, ein isoliertes Netzwerksegment fĂŒr IoT-Komponenten wurde erforderlich, selbstsignierte SSL-Zertifikate mussten mangels Möglichkeiten wie bspw. "Let's Encrypt" verwendet werden; Compliance - zumindest was das Intranet betraf - war obligatorisch.

Die implementierten Sicherheitsmaßnahmen umfassten neben den bereits genannten zusĂ€tzlich auch Passwort-Hashing mit bcrypt, CSRF-Schutz und Session-Management sowie Firewall-Regeln mit Port-BeschrĂ€nkung. Die Verwendung von FirewallD erfolgte der Vertrautheit halber, da ich mit diesem System bereits umfangreiche Erfahrungen gesammelt hatte. Besonders wichtig war die Implementierung von HTTPS auch im Kiosk-Modus, um fĂŒr den unwahrscheinlichen Fall eines Man-in-the-Middle-Angriffs auf dem GerĂ€t selbst keine Klartextpasswörter im Netzwerkstrom zu haben – eine Entscheidung, die wahrscheinlich mehr meinem Gewissen als der letztendlichen Eintrittswahrscheinlichkeit entsprach.

3.4 Anforderungsgerechte Auswahl der Übertragungssysteme

Die Evaluierung verschiedener Optionen ergab, dass eine direkte 3D-Drucker-Integration aufgrund fehlender Schnittstellen nicht möglich war. Cloud-basierte Lösungen schieden wegen der Offline-Anforderung aus. Als hinreichende Lösung wurde als die Fernsteuerung der Steckdosen identifiziert.

Die technische Herausforderung bestand darin, dass die TP-Link Tapo P110 ĂŒber keine dokumentierte API verfĂŒgten (propritĂ€r, verschlĂŒsselt). Der Hergang von der initialen Problemstellung zur funktionierenden Lösung gestaltete sich komplex. ZunĂ€chst versuchte ich, ein recherchiertes Python-Modul fĂŒr die Steuerung zu verwenden, was jedoch scheiterte. Daraufhin fĂŒhrte ich eine systematische Protokollanalyse mittels Wireshark durch. Die Untersuchung des Netzwerkverkehrs zwischen der TAPO-App und den Steckdosen offenbarte eine verschlĂŒsselte Kommunikation mit dynamisch generierten Session-Keys. Nach mehreren Tagen intensiver Analyse und verschiedenen Implementierungsversuchen konnte ich schließlich PyP100 als funktionsfĂ€hige Python-Bibliothek identifizieren, die das proprietĂ€re Kommunikationsprotokoll korrekt implementierte und eine lokale Steuerung ohne Cloud-AbhĂ€ngigkeit oder Eigenlösung ermöglichte.


4. Systemarchitektur und Schnittstellenkonzeption

4.1 Gesamtsystemarchitektur

Die Architektur folgt einem dreischichtigen Aufbau mit klarer Trennung der Verantwortlichkeiten:

┌─────────────────┐    HTTPS    ┌─────────────────┐    WLAN    ┌─────────────────┐
│   Web-Client    │◄────────────â–ș│  Raspberry Pi   │◄───────────â–ș│   Smart-Plugs   │
│   (Browser)     │              │   MYP-Server    │             │   (IoT-Layer)   │
└─────────────────┘              └─────────────────┘             └─────────────────┘
                                         │                               │
                                    ┌────▌────┐                     ┌────▌────┐
                                    │ SQLite  │                     │3D-Drucker│
                                    │Database │                     │(6 GerĂ€te)│
                                    └─────────┘                     └─────────┘

4.2 Technische Systemarchitektur

Das Schichtenmodell umfasst die PrĂ€sentationsschicht als Web-Frontend (HTTPS/Port 443), die Anwendungsschicht mit Flask-Backend und REST-API, die GeschĂ€ftslogikschicht fĂŒr Reservierungsmanagement und Scheduler, die Datenhaltungsschicht mit SQLite-Datenbank, die IoT-Integrationsschicht fĂŒr die Tapo-Steckdosen sowie die Hardwareschicht mit stromgesteuerten 3D-Druckern.

4.3 Schnittstellenkonzeption

Das REST-API-Design umfasst vielerlei Endpunkte, strukturiert in logische Bereiche. Die Authentifizierung erfolgt ĂŒber /api/auth/ mit Login, Logout und Session-Management. Die Benutzerverwaltung ist unter /api/users/ fĂŒr CRUD-Operationen implementiert. Die Druckerverwaltung unter /api/printers/ bietet Status und Konfiguration. Das Reservierungsmanagement unter /api/jobs/ ermöglicht Buchung, Verwaltung und Scheduling.

Die IoT-Schnittstelle kommuniziert ĂŒber HTTP/TCP via WLAN mit session-basierter Authentifizierung und dynamischen Tokens. Die verfĂŒgbaren Operationen umfassen Power On/Off, Status-Abfrage und Energiemessung mit implementierter Fehlerbehandlung durch Retry-Mechanismen und Timeout-Handling; dies war insbesondere fĂŒr den Kiosk Modus wichtig.

4.4 Datenmodell

Die KernentitĂ€ten des Datenmodells umfassen User fĂŒr Benutzerkonten mit Rollen und Berechtigungen, Printer fĂŒr 3D-Drucker-Definitionen mit Steckdosen-Zuordnung, Job fĂŒr Reservierungen mit Zeitfenstern und Status, SmartPlug fĂŒr IoT-GerĂ€te-Konfiguration und Zustandsverwaltung.


5. Umsetzung

5.1 Implementierung der Backend-Infrastruktur

Die Flask-Anwendungsstruktur folgt einer modularen Blueprint-Architektur:

├── app.py                  # Hauptanwendung mit HTTPS-Konfiguration
├── models.py              # SQLAlchemy-Datenmodelle
├── blueprints/            # Funktionale Module
│   ├── auth.py           # Authentifizierung
│   ├── users.py          # Benutzerverwaltung
│   ├── printers.py       # Druckerverwaltung
│   └── jobs.py           # Reservierungslogik
└── utils/                 # Hilfsfunktionen
    ├── scheduler.py      # Zeitgesteuerte Operationen
    └── smart_plug.py     # IoT-Integration

Die zentrale Implementierungsherausforderung bestand in der Smart-Plug-Integration. Nach dem beschriebenen Hergang von Wireshark-Analyse zu PyP100 erwies sich diese Bibliothek als einzige funktionsfÀhige Lösung. Die Scheduler-Implementation erforderte sorgfÀltige Synchronisation:

class SmartPlugScheduler:
    def __init__(self):
        self.scheduler = BackgroundScheduler()
        self.lock = threading.Lock()
  
    def schedule_job(self, job_id, start_time, duration):
        with self.lock:
            self.scheduler.add_job(...)

5.2 IoT-Integration und Hardware-Steuerung

Die Smart-Plug-Konfiguration erfolgte mit statischen IP-Adressen im Bereich 192.168.0.100-106. Die lokale Authentifizierung funktioniert ohne Cloud-Service-AbhÀngigkeit.

Die Kommunikation wurde in einer Manager-Klasse gekapselt:

class SmartPlugManager:
    def __init__(self, plug_configs):
        self.plugs = {id: Tapo(ip, user, pass) for id, ip in plug_configs.items()}
  
    async def control_printer(self, printer_id, action):
        plug = self.plugs[printer_id]
        return await plug.on() if action == 'start' else await plug.off()

5.3 Sicherheitsimplementierung

Die umfassende Sicherheitsarchitektur implementiert mehrschichtige Schutzmaßnahmen entsprechend den Unternehmensrichtlinien. Die Authentifizierung nutzt bcrypt (Cost-Factor 12) sichere Passwort-Speicherung. Das Session-Management ĂŒber Flask-Login gewĂ€hrleistet sichere Sitzungsverwaltung mit automatischem Timeout nach 30 Minuten InaktivitĂ€t.

from flask_login import login_required, current_user
from werkzeug.security import generate_password_hash, check_password_hash
import secrets

class SecurityManager:
    def __init__(self):
        self.failed_attempts = {}
        self.rate_limiter = RateLimiter(max_attempts=5, window=300)
    
    def hash_password(self, password):
        return generate_password_hash(password, method='bcrypt', salt_rounds=12)
    
    def verify_login(self, username, password):
        if self.rate_limiter.is_blocked(username):
            raise SecurityException("Zu viele fehlgeschlagene Anmeldeversuche")
        
        user = User.query.filter_by(username=username).first()
        if user and check_password_hash(user.password_hash, password):
            self.rate_limiter.reset(username)
            return user
        
        self.rate_limiter.record_failure(username)
        return None

Der CSRF-Schutz wurde fĂŒr alle state-verĂ€ndernden Operationen implementiert. Jede kritische Aktion erfordert ein gĂŒltiges CSRF-Token:

@app.before_request
def csrf_protect():
    if request.method == "POST":
        token = session.get('csrf_token', None)
        if not token or token != request.form.get('csrf_token'):
            abort(403)

def generate_csrf_token():
    if 'csrf_token' not in session:
        session['csrf_token'] = secrets.token_hex(16)
    return session['csrf_token']

Das Rate-Limiting implementiert eine exponentielle Timeout-Strategie mit IP- und benutzerspezifischer Überwachung. Nach 5 fehlgeschlagenen Anmeldeversuchen wird der Account fĂŒr exponentiell wachsende ZeitrĂ€ume gesperrt (5, 15, 60 Minuten). Die Input-Validierung erfolgt mittels Python-Bibliothek "WTForms" mit automatischer XSS-Bereinigung fĂŒr alle Benutzereingaben.

ZusĂ€tzliche Sicherheitsmaßnahmen umfassen HTTP-Security-Header, verschlĂŒsselte Cookie-Übertragung mit Secure- und HttpOnly-Flags.

5.4 Systemkonfiguration und Deployment

Die Systemd-Service-Konfiguration gewĂ€hrleistet automatischen Start und Überwachung:

[Unit]
Description=MYP HTTPS Backend Service
After=network.target

[Service]
Type=simple
User=myp
WorkingDirectory=/opt/myp
ExecStart=/usr/bin/python3 app.py --production
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Das SSL-Zertifikat-Management erfolgt ĂŒber selbstsignierte Zertifikate fĂŒr den Offline-Betrieb. Die HTTPS-Implementierung auch im Kiosk-Modus gewĂ€hrleistet verschlĂŒsselte PasswortĂŒbertragung.


6. Test und Optimierung

6.1 TestdurchfĂŒhrung und -ergebnisse

Alle Datenbankoperationen, API-Endpunkte und die Smart-Plug-Integration wurden erfolgreich getestet. Die Integrationstests bestÀtigten die FunktionalitÀt der produktiv eingesetzten Lösung und des Tapo-Steckdosen Controllings. Systemtests verifizierten Reservierungsszenarien mit bis zu 10 parallelen Sessions.

Die Performance-Optimierungen umfassten das Hardware-Upgrade von Raspberry Pi 4 auf Pi 5 aufgrund unzureichender Leistung, Datenbankindizierung fĂŒr hĂ€ufige Abfragen sowie Caching-Strategien fĂŒr Smart-Plug-Status.

6.2 Sicherheitstests

Die Sicherheitstests fokussierten sich auf die Unternehmensrichtlinien und umfassten Netzwerkscans der IT. Zudem aktivierte sich das Rate-Limiting nach 5 fehlgeschlagenen Login-Versuchen erfolgreich in manuellen Tests.

6.3 SystemstabilitÀt und Monitoring

Das implementierte Monitoring nutzt strukturiertes Logging mit Rotation:

import logging
from logging.handlers import RotatingFileHandler

logging.basicConfig(
    handlers=[RotatingFileHandler('app.log', maxBytes=10000000, backupCount=10)],
    level=logging.INFO,
    format='%(asctime)s %(levelname)s %(name)s %(message)s'
)

7. Projektabschluss

7.1 Soll-Ist-Vergleich

VollstĂ€ndig erreichte Ziele umfassen die webbasierte Reservierungsplattform, automatische Hardware-Steuerung via IoT, zentrale VerwaltungsoberflĂ€che, robuste Authentifizierung und Rechteverwaltung, WLAN-Integration der Raspberry Pi-Plattform, Datenbankaufbau fĂŒr Reservierungsverwaltung sowie Test der Schnittstellen und Netzwerkverbindungen.

ZusĂ€tzlich realisierte Features beinhalten Nutzungsstatistiken und Dashboard, erweiterte Sicherheitsfeatures wie Rate-Limiting und CSRF-Schutz sowie einen Kiosk-Modus fĂŒr Werkstatt-Terminals.

Abweichungen vom ursprĂŒnglichen Plan waren die Konsolidierung auf einen statt zwei Raspberry Pis aus KostenoptimierungsgrĂŒnden, das Hardware-Upgrade Pi 4 auf Pi 5 wegen Performance-Anforderungen, die Implementierung einer eigenen Frontend-Lösung als Notlösung statt Next.js-Integration sowie die Verschiebung der Intranet-Integration aufgrund von Zeitrestriktionen. Der Zeitverzug konnte durch effiziente Arbeitsweise in den finalen Sprints teilweise kompensiert werden; nicht jedoch vollstĂ€ndig.

7.2 Projektergebnisse und Erkenntnisse

Das MYP-System transformiert erfolgreich die analoge 3D-Drucker-Verwaltung in ein modernes System. Die Lösung demonstriert, dass auch Legacy-Hardware in moderne Systemlandschaften integriert werden kann.

Die zentralen Erfolgsfaktoren waren die pragmatische Abstraktion komplexer Hardware-Probleme, eine robuste Softwarearchitektur mit umfassender Fehlerbehandlung sowie die konsequente BerĂŒcksichtigung von Sicherheitsanforderungen von Projektbeginn an.

Als wichtige Erkenntnisse kristallisierten sich heraus, dass Hardware-KompatibilitĂ€tsprĂŒfungen vor Projektstart essentiell sind, Backup-Strategien fĂŒr kritische Konfigurationen unerlĂ€sslich sind und agile AnpassungsfĂ€higkeit bei unvorhergesehenen Problemen den Projekterfolg sichert. Zudem nehme ich mir persönlich mit, dass ich - auch wenn ich von Herzen dabei bin - eigenen Ehrgeiz einem pĂŒnktlichen Projektabschluss zu Gunsten zurĂŒckstellen muss.

7.3 Optimierungsmöglichkeiten

Das MYP-System bietet eine solide Basis fĂŒr zukĂŒnftige Erweiterungen. Die modulare Architektur und umfassende API ermöglichen die Integration zusĂ€tzlicher FunktionalitĂ€ten ohne grundlegende SystemĂ€nderungen.

Kurzfristig ist die Anbindung an das unternehmenseigene Netzwerk geplant. Mittelfristig könnte bei VerfĂŒgbarkeit modernerer 3D-Drucker eine direkte GerĂ€teintegration realisiert werden. Langfristig bietet sich die Erweiterung zu einer umfassenden Maker-Space-Management-Lösung an, die auch andere GerĂ€tetypen wie Lasercutter oder CNC-FrĂ€sen einbindet.

7.4 Formale Projektabnahme

Die Erstabnahme erfolgte am 3. Juni 2025 durch die Ausbildungsleitung der TBA. Die PrĂ€sentation umfasste eine Live-Demonstration aller Kernfunktionen sowie eine technische Deep-Dive-Session fĂŒr interessierte Kollegen.

Die Live-Demonstration verlief trotz anfÀnglicher technischer Herausforderungen erfolgreich. Aktuell befindet sich das System in aktiver Beobachtung der realen Anwendung. Als letzter Schritt verbleibt die Schulung der Mitarbeiter, die in den kommenden Wochen stattfinden wird.


Anlagen

A1. Systemdokumentation

  • Netzwerkdiagramme und Systemarchitektur
  • API-Dokumentation (REST-Endpunkte)
  • Datenbankschema (ER-Diagramme)

A2. Technische Dokumentation

  • Installationsanleitung und Setup-Skripte
  • Konfigurationsdateien (systemd, SSL, Firewall)
  • Troubleshooting-Guide

A3. Testdokumentation

  • Testprotokolle (Unit-, Integration-, Systemtests)
  • Sicherheitstests
  • Performance-Benchmarks

A4. BenutzeroberflÀche

  • Screenshots der WeboberflĂ€che
  • Benutzerhandbuch
  • Admin-Dokumentation

A5. Projektmanagement

  • Zeiterfassung nach Projektphasen
  • Kostenaufstellung
  • Übergabeprotokoll

Glossar

Begriff ErlÀuterung
bcrypt Kryptographische Hash-Funktion fĂŒr sichere Passwort-Speicherung mit konfigurierbarem Cost-Faktor
CSRF Cross-Site Request Forgery - Angriffsmethode, bei der authentifizierte Nutzer unbeabsichtigt Aktionen ausfĂŒhren
Flask Python-basiertes Web-Framework fĂŒr Backend-Entwicklung. GrundgerĂŒst des MYP-Servers mit REST-API und Session-Management
Hardware in the Loop Testmethode, bei der reale Hardware-Komponenten in die Testumgebung eingebunden werden
Next.js React-basiertes Frontend-Framework, ursprĂŒnglich von Torben Haack fĂŒr den Prototyp verwendet
Scheduler Zeitgesteuerte Komponente fĂŒr automatisierte Smart-Plug-Operationen und Reservierungsverwaltung
Threads Parallele AusfĂŒhrungsstrĂ€nge innerhalb eines Prozesses fĂŒr gleichzeitige Operationen

Projektstatistiken:

  • Codezeilen: 9.000+ (Python/JavaScript)
  • API-Endpunkte: 100+
  • Codeabdeckung: 85%
  • Gesamtkosten: < 200 Euro
  • Zeitverzug: 10 Stunden vom ursprĂŒnglichen Zeitplan
  • Systemlaufzeit: In aktiver Beobachtung seit 3. Juni 2025