MYP Druckerverwaltungssystem
Manage Your Printer - Mercedes-Benz Werk 040 Berlin
Vollständige 3D-Drucker Verwaltungsplattform mit Smart-Plug-Technologie
đŻ System-Ăbersicht
MYP (Manage Your Printer) ist ein System zur zentralen Verwaltung und Steuerung von 3D-Druckern mittels Smart-Plug-Technologie. Es digitalisiert den Reservierungsprozess fĂźr mehrere 3D-Drucker und ermĂśgligt eine automatisierte Schaltung der Drucker Ăźber WLAN-Steckdosen (TP-Link Tapo P110).
đ Kernfunktionen
Benutzer- und Rechteverwaltung
- Registrierung, Login und Rollenkonzept (Admin/Benutzer)
- Administrierende kĂśnnen Drucker und Nutzer verwalten
- Standard-Benutzer kĂśnnen Reservierungen anlegen und Druckjobs verwalten
Drucker- und Auftragsmanagement
- Zentrales Reservierungssystem fĂźr Zeitfenster-Buchungen
- Automatische Drucker-Schaltung: Einschalten zum Reservierungsstart, Ausschalten nach Ende
- Herstellerunabhängig: Keine direkte Kommunikation mit 3D-Druckern - ausschlieĂlich Stromsteuerung Ăźber Smart-Plug-Steckdosen
- Einfache Integration: Keine Eingriffe in die Druckerhardware erforderlich
Statistikerfassung
- Protokollierung von Nutzungszeiten und abgeschlossenen Druckaufträgen
- Auswertungen (z.B. Gesamtdruckzeit pro Zeitraum)
- Analytics-Dashboard fĂźr Effizienzanalysen
Offline-Fähigkeit & Kiosk-Modus
- Autonomer Betrieb ohne Internetzugang nach Installation
- Raspberry Pi Kiosk-Modus: Vollbild-Dashboard vor Ort
- Touch-Interface fĂźr aktuelle Druckerbelegungen und Systemstatus
đ Projektarchitektur
Dieses Repository enthält zwei sich ergänzende Projektarbeiten fßr die IHK-Abschlussprßfung:
đď¸ Backend-System (Till Tomczak) - KERN-INFRASTRUKTUR
- Entwickler: Till Tomczak
- Fachrichtung: Fachinformatiker fĂźr digitale Vernetzung
- Technologie: Flask-basiertes Backend in Python mit SQLite-Datenbank
- Verantwortung: Hardware-Integration, REST-APIs und cyber-physische Vernetzung
đ Frontend-System (Torben Haack) - BENUTZEROBERFLĂCHE & ANALYTICS
- Entwickler: Torben Haack
- Fachrichtung: Fachinformatiker fĂźr Daten- und Prozessanalyse
- Technologie: Next.js-basierte Webanwendung mit erweiterten Analytics
- Verantwortung: Moderne Web-UI, Datenvisualisierung und Benutzerfreundlichkeit
đď¸ Technische Architektur
Cyber-Physische LĂśsung
âââââââââââââââââââââââ âââââââââââââââââââââââ âââââââââââââââââââââââ
â Frontend-Server âââââşâ Backend-Server âââââşâ Raspberry Pi â
â (Port 3000) â â (Port 443/5000) â â (Smart-Plugs) â
â Torben Haack â â Till Tomczak â â Till Tomczak â
â â â â â â
â ⢠Next.js App â â ⢠Flask REST-API â â ⢠TP-Link Tapo P110 â
â ⢠Analytics UI â â ⢠SQLite Database â â ⢠Hardware Control â
â ⢠PWA-Features â â ⢠Smart-Plug API â â ⢠Kiosk Interface â
â ⢠HTTPS Client â â ⢠HTTPS Server â â ⢠Offline Operation â
â ⢠Export Functions â â ⢠Session Managementâ â ⢠Touch Interface â
âââââââââââââââââââââââ âââââââââââââââââââââââ âââââââââââââââââââââââ
Kommunikations-Architektur
- RESTful API: Backend kommuniziert mit Frontend und externen Diensten
- HTTPS-VerschlĂźsselung: Selbstsignierte Zertifikate fĂźr sichere Ăbertragung
- Progressive Web App (PWA): Offline-Funktionalität im Browser
- Smart-Plug-Integration: Lokale WLAN-Steuerung ohne Cloud-Abhängigkeit
đ Schnellstart
Backend-System (Hardware & APIs)
# Backend-Server automatisch installieren (Till Tomczaks System)
cd backend
sudo ./setup.sh # Konsolidiertes Setup-Skript
# Oder manuell fĂźr Development
python app.py
Frontend-System (Web-Interface) - NEU: Automatische Installation
# Frontend-Server automatisch installieren (Torben Haacks System)
cd frontend
sudo ./setup.sh # Konsolidiertes Setup-Skript mit Mercedes SSL
# Oder manuell fĂźr Development
pnpm install
pnpm db # Datenbank einrichten
pnpm dev # Development-Server
Vollständiges System
# Backend (API-Server)
cd backend && sudo ./setup.sh
# Frontend (Web-Interface mit HTTPS)
cd frontend && sudo ./setup.sh
đ Systemzugriff
Produktions-URLs (Nach Setup-Skript Installation)
- Frontend (HTTPS):
https://m040tbaraspi001.de040.corpintra.net
(Torben Haacks Frontend) - Frontend (Lokal):
https://localhost
(Fallback-Zugang) - API-Backend:
https://192.168.0.105:443/api
(Till Tomczaks APIs) - Kiosk-Modus:
https://192.168.0.105:443
(Lokales Touch-Interface)
Development-URLs
- Frontend (Dev):
http://localhost:3000
(Development-Server) - Backend (Dev):
http://localhost:5000
(Development-API)
Standard-Anmeldedaten
- Benutzername:
admin
- Passwort:
admin123
SSL-Zertifikate (Mercedes)
Nach der automatischen Installation sind selbstsignierte Mercedes-Zertifikate verfĂźgbar:
- Domain:
m040tbaraspi001.de040.corpintra.net
- Organisation: Mercedes-Benz AG
- Abteilung: IT-Abteilung
- Standort: Stuttgart, Baden-WĂźrttemberg
- GĂźltigkeit: 365 Tage
đ Projektstruktur & Integration
Projektarbeit-MYP/
âââ backend/ # đď¸ KERN-INFRASTRUKTUR (Till Tomczak)
â âââ app.py # Flask REST-API Server
â âââ models.py # SQLite-Datenbank & Business Logic
â âââ utils/ # Smart-Plug Integration (TP-Link Tapo P110)
â âââ templates/ # Kiosk-Mode Web-Interface
â âââ static/ # PWA-Assets fĂźr Offline-Betrieb
â âââ systemd/ # Raspberry Pi Service-Integration
âââ
âââ frontend/ # đ WEB-INTERFACE (Torben Haack)
â âââ src/app/ # Next.js Haupt-Anwendung
â âââ src/components/ # React UI-Komponenten
â âââ src/lib/api/ # Backend-REST-API-Integration
â âââ src/lib/analytics/ # Statistik-Algorithmen
âââ
âââ docs/ # đ Gemeinsame Dokumentation
âââ README.md # Diese Datei
đŻ Funktions-Aufgabenteilung
Backend-Verantwortlichkeiten (Till Tomczak)
- â Smart-Plug-Steuerung: TP-Link Tapo P110 WLAN-Steckdosen
- â Automatische Drucker-Schaltung: Zeitgesteuerte Ein-/Ausschaltung
- â REST-API-Bereitstellung: Vollständige API fĂźr alle Drucker-Operationen
- â Cyber-physische Vernetzung: IT-System â Hardware-Integration
- â SQLite-Datenbank: Benutzer, Drucker, Jobs, Statistiken
- â HTTPS-Server: Selbstsignierte Zertifikate und Session-Management
- â Raspberry Pi Integration: Systemd-Services und Kiosk-Modus
- â Offline-Fähigkeit: Autonomer Betrieb ohne Internet
Frontend-Verantwortlichkeiten (Torben Haack)
- â Moderne Web-UI: React-basierte Benutzeroberfläche
- â Progressive Web App: Offline-Funktionalität im Browser
- â Advanced Analytics: Interaktive Charts und Datenvisualisierung
- â Reporting-System: PDF/Excel-Export und automatisierte Berichte
- â Responsive Design: Optimiert fĂźr Desktop, Tablet und Mobile
- â Backend-API-Integration: Nahtlose REST-API-Anbindung
- â Statistik-Auswertungen: Nutzungsanalysen und Trend-Analysen
- â Benutzerfreundlichkeit: Intuitive Workflows fĂźr alle Stakeholder
đ API-Integration & Kommunikation
Backend-REST-Endpunkte (Till Tomczak)
// Drucker-Management
GET /api/printers // Alle Drucker abrufen
POST /api/printers // Neuen Drucker hinzufĂźgen
PUT /api/printers/{id} // Drucker aktualisieren
DELETE /api/printers/{id} // Drucker lĂśschen
// Reservierungs-Management
GET /api/jobs // Alle Reservierungen abrufen
POST /api/jobs // Neue Reservierung erstellen
PUT /api/jobs/{id}/finish // Reservierung beenden
DELETE /api/jobs/{id} // Reservierung abbrechen
// Smart-Plug-Steuerung (TP-Link Tapo P110)
POST /api/plugs/{id}/on // Drucker einschalten
POST /api/plugs/{id}/off // Drucker ausschalten
GET /api/plugs/{id}/status // Plug-Status abfragen
// Statistiken & Analytics
GET /api/stats // Nutzungsstatistiken
GET /api/reports // Report-Daten fĂźr Analytics
Frontend-Integration (Torben Haack)
// Backend-API Client - Konfiguriert fĂźr separaten Server
export class MYPApiClient {
constructor(baseURL: string = 'https://192.168.0.105:443/api') {
this.baseURL = baseURL;
}
async getPrinters() {
return fetch(`${this.baseURL}/printers`).then(r => r.json());
}
async getJobs() {
return fetch(`${this.baseURL}/jobs`).then(r => r.json());
}
async getStats() {
return fetch(`${this.baseURL}/stats`).then(r => r.json());
}
}
// API-Konfiguration mit Fallback-URLs
export const API_BASE_URL = {
primary: 'https://192.168.0.105:443',
fallbacks: [
'https://192.168.0.105',
'https://raspberrypi'
]
};
đĽď¸ Deployment-Szenarien
Szenario 1: Automatische Produktions-Installation (Neu - Empfohlen)
# Backend-Server (Raspberry Pi oder Linux-Server)
cd backend
sudo ./setup.sh # Automatische Installation mit Kiosk-Modus
# Frontend-Server (separater Server oder gleicher Server)
cd frontend
sudo ./setup.sh # Automatische Installation mit HTTPS auf Port 443
Szenario 2: Separate Server (Manuell)
# Backend-Server (z.B. Raspberry Pi oder Linux-Server)
cd backend
sudo systemctl start myp-https.service
# Frontend-Server (z.B. Node.js-Server oder Cloud-Deployment)
cd frontend
npm run build && npm start
Szenario 3: Docker-Deployment
# docker-compose.yml
services:
backend:
build: ./backend
ports: ["5000:5000", "443:443"]
frontend:
build: ./frontend
ports: ["80:80", "443:443"]
environment:
- NEXT_PUBLIC_API_URL=http://backend:5000/api
Szenario 4: Raspberry Pi Kiosk (Lokal)
# Vollständige Kiosk-Installation (Backend + Frontend)
cd backend && sudo ./setup.sh # Backend mit Kiosk-Interface
cd frontend && sudo ./setup.sh # Frontend mit HTTPS-Server
đ§ Konfiguration & Environment
Backend-Konfiguration (.env)
# Flask-Server Einstellungen
FLASK_HOST=0.0.0.0
FLASK_PORT=5000
SSL_ENABLED=true
DATABASE_URL=sqlite:///myp.db
# Smart-Plug Konfiguration (TP-Link Tapo P110)
TAPO_USERNAME=your-tapo-email
TAPO_PASSWORD=your-tapo-password
# Kiosk-Modus
KIOSK_MODE=true
OFFLINE_MODE=true
Frontend-Konfiguration (.env.local)
# Frontend-Server Einstellungen - HTTPS mit Mercedes SSL
NEXT_PUBLIC_API_URL=https://192.168.0.105:443
DATABASE_URL=file:./db/frontend.db
# SSL-Zertifikat Handling fĂźr selbstsignierte Zertifikate
NODE_TLS_REJECT_UNAUTHORIZED=0
# Analytics-Features
ENABLE_ADVANCED_ANALYTICS=true
CHART_REFRESH_INTERVAL=30000
# Production HTTPS (Nach Setup-Skript)
HTTPS_ENABLED=true
SSL_CERT_PATH=/etc/ssl/certs/myp/frontend.crt
SSL_KEY_PATH=/etc/ssl/certs/myp/frontend.key
đ Features im Ăberblick
Backend-Features (Till Tomczak) - Cyber-Physische Integration
- TP-Link Tapo P110 Integration: Lokale WLAN-Steckdosen-Steuerung
- Automatische Zeitsteuerung: Drucker Ein-/Ausschaltung nach Reservierung
- Herstellerunabhängigkeit: Keine direkten Drucker-Eingriffe erforderlich
- Flask REST-APIs: Vollständige CRUD-Operationen
- SQLite-Datenbank: Lokale Datenpersistenz ohne externe Abhängigkeiten
- HTTPS-VerschlĂźsselung: Selbstsignierte Zertifikate
- Offline-Betrieb: Vollständig autonomer Betrieb ohne Internet
- Raspberry Pi Kiosk: Touch-optimiertes Dashboard vor Ort
Frontend-Features (Torben Haack) - Moderne Web-Oberfläche
- Progressive Web App: Offline-Funktionalität im Browser
- React 18 + Next.js 14: Moderne, performante Web-Technologien
- Analytics-Dashboard: Recharts-Visualisierungen fĂźr Nutzungsstatistiken
- Responsive Design: Optimiert fßr alle Endgeräte (Desktop/Tablet/Mobile)
- Real-time Updates: Live-Synchronisation mit Backend-APIs
- Export-Funktionen: PDF/Excel-Reports fĂźr Management-Analysen
- Benutzerfreundlich: Intuitive Workflows fĂźr alle Stakeholder
đ ď¸ Entwicklung
Backend-Entwicklung (Till Tomczak)
cd backend
python -m venv venv
source venv/bin/activate # Linux/Mac
pip install -r requirements.txt
python app.py --debug
Frontend-Entwicklung (Torben Haack)
Automatische Installation (Empfohlen)
cd frontend
sudo ./setup.sh # Interaktives Setup-MenĂź
Manuelle Entwicklung
cd frontend
pnpm install
pnpm db:migrate
pnpm dev
Frontend-Setup-Skript Features
Das neue frontend/setup.sh
bietet:
- Vollständige Installation: Docker, SSL-Zertifikate, Caddy Reverse Proxy
- Mercedes SSL-Zertifikate: Selbstsignierte Zertifikate fĂźr
m040tbaraspi001.de040.corpintra.net
- Automatischer HTTPS-Server: VerfĂźgbar auf Port 443 (nicht 3000)
- Systemd-Integration: Automatischer Start beim Boot
- Interaktives MenĂź:
- Vollständige Frontend-Installation
- SSL-Zertifikate neu generieren
- Service-Status prĂźfen
- Beenden
Integration testen
# Backend-APIs testen
curl http://localhost:5000/api/printers
# Frontend mit HTTPS (nach Setup-Skript)
curl -k https://m040tbaraspi001.de040.corpintra.net/health
curl -k https://localhost/health
đ Dokumentation
Backend-Dokumentation (Till Tomczak)
backend/README.md
- Hardware-Setup & API-Dokumentationbackend/docs/
- Raspberry Pi Konfiguration & Smart-Plug-Integration
Frontend-Dokumentation (Torben Haack)
frontend/README.md
- UI-Entwicklung & Analyticsfrontend/docs/
- Component-Library & PWA-Features
Gemeinsame Dokumentation
docs/myp_documentation.md
- Vollständige Projektdokumentationdocs/DEPLOYMENT.md
- Production-Deployment-Guide
đ¤ Projektphilosophie
Cyber-Physische Vernetzung
MYP stellt eine cyber-physische LĂśsung dar, die IT-System (Reservierungsplattform) und Hardware (Smart-Plugs und Drucker) eng vernetzt. Das System ĂźberbrĂźckt die digitale und physische Welt durch intelligente Automatisierung.
Komplementäre Expertisen
- Till Tomczak: Spezialist fĂźr Hardware-Integration und cyber-physische Vernetzung
- Torben Haack: Spezialist fĂźr Frontend-Entwicklung und Datenanalyse
Gemeinsame Ziele
- Digitalisierung: Modernisierung des Reservierungsprozesses
- Automatisierung: Zeitgesteuerte Hardware-Steuerung ohne manuelle Eingriffe
- Benutzerfreundlichkeit: Intuitive Bedienung fĂźr alle Stakeholder
- Effizienz: Optimierte Ressourcennutzung und Energieeinsparung
đĽ Entwicklerteam
Till Tomczak - Backend-Infrastruktur & Hardware-Integration
- Cyber-Physische Systeme: Smart-Plug-Integration und Hardware-Steuerung
- System-Architektur: Flask-APIs und SQLite-Datenbank-Design
- DevOps: Raspberry Pi Services und Produktions-Deployment
- Offline-Systeme: Autonomer Betrieb ohne Internet-Abhängigkeiten
Torben Haack - Frontend-Entwicklung & Analytics
- Progressive Web Apps: Moderne Browser-Technologien und Offline-Features
- User Interface: React-Komponenten und responsive Design
- Datenvisualisierung: Charts, Dashboards und Analytics
- API-Integration: Nahtlose Backend-Anbindung und Real-time Updates
đ Lizenz
Dieses Projekt wurde fĂźr den internen Gebrauch bei Mercedes-Benz entwickelt.
Backend-System: Till Tomczak (Cyber-Physische Vernetzung & Hardware-Integration)
Frontend-System: Torben Haack (Progressive Web App & Analytics)
Architektur: Microservices mit REST-API-Integration
Technologie: Flask + SQLite (Backend) + Next.js + React (Frontend)
Hardware: Raspberry Pi + TP-Link Tapo P110 Smart-Plugs
Entwickelt fĂźr: Mercedes-Benz Werk 040 Berlin MYP