**Ãnderungen:** - â Aktualisierte Schulungsdokumentation fÃŒr den Gastzugang, um den Workflow klarer darzustellen. - â Verbesserte Visualisierung im Workflow-Diagramm, um den Prozess fÃŒr GÀste zu verdeutlichen. - â Optimierte Logik in der Job-Löschfunktion, um abhÀngige DatensÀtze vor der Löschung zu bereinigen. **Ergebnis:** - Klarere Anleitungen fÃŒr Benutzer zur Nutzung des Gastzugangs. - Verbesserte Nachvollziehbarkeit des Workflows durch aktualisierte Diagramme. - Erhöhte DatenintegritÀt durch Bereinigung abhÀngiger DatensÀtze vor der Job-Löschung. ð€ Generated with [Claude Code](https://claude.ai/code)
25 KiB
MYP Workflow-Dokumentation fÌr SchulungsprÀsentation
Gastzugang und Druckauftragsverwaltung
ð Workflow-Ãbersicht
Das MYP-System (Manage Your Printers) implementiert einen strukturierten Workflow fÌr Gastbenutzer, der von der ersten Anfrage bis zur erfolgreichen DruckauftragsdurchfÌhrung reicht. Dieser Workflow gewÀhrleistet sowohl Sicherheit als auch Benutzerfreundlichkeit in der Mercedes-Benz TBA Marienfelde Umgebung.
ð Kompletter Workflow: Gast â Druckauftrag
Phase 1: Gastzugang-Anfrage
1.1 Gast stellt Anfrage (Vor-Ort-Prozess)
Endpunkt: /request
(nur im lokalen Netzwerk zugÀnglich)
Gast besucht vor Ort: http://192.168.1.100:5000/request
(Terminal/Kiosk in TBA Marienfelde)
Eingabefelder:
- Name (Pflichtfeld)
- Grund der Anfrage (Pflichtfeld, mind. 10 Zeichen)
- Abteilung/Firma (Pflichtfeld)
- GewÃŒnschte Zugangsdauer (1-7 Tage)
- Ansprechpartner (Mercedes-Benz) (optional)
Validierungsregeln:
- DuplikatsprÃŒfung (gleicher Name innerhalb 24h)
- MindestlÀnge fÌr BegrÌndung
- Maximale Zugangsdauer begrenzt
Systemverhalten:
# Automatische Aktionen nach Anfrage-Eingang
1. Anfrage-ID generiert (unique)
2. Status: "pending"
3. Zeitstempel erstellt
4. Dashboard-Benachrichtigung fÃŒr Admin
5. Ausdruck mit Anfrage-ID fÃŒr Gast
1.2 BestÀtigung fÌr Gast
Weiterleitung: /request/{request_id}
Der Gast erhÀlt eine BestÀtigungsseite mit:
- Anfrage-ID zum Nachverfolgen (wird ausgedruckt)
- QR-Code fÌr spÀtere Status-Abfrage
- GeschÀtzte Bearbeitungszeit (1-4 Stunden)
- Kontaktinformation: Vor Ort bei Mercedes-Benz Ansprechpartner
- Status-Anzeige (Pending/Genehmigt/Abgelehnt)
Gast erhÀlt:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â MYP Gastzugang-Anfrage â
â TBA Marienfelde â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â Anfrage-ID: GAS-2025-001234 â
â Name: Max Mustermann â
â Eingegangen: 16.06.2025 09:00 â
â â
â Status: â³ Wartet auf Genehmigung â
â â
â [QR-Code] â Scannen fÃŒr Status-Update â
â â
â Bearbeitungszeit: 1-4 Stunden â
â Bei Fragen: Mercedes-Benz Ansprechpartner â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Phase 2: Administrative Genehmigung
2.1 Admin-Benachrichtigung
Lokale Benachrichtigung:
- Dashboard-Benachrichtigung im System (rote Badge)
- Browser-Popup (wenn Admin angemeldet)
- Audio-Signal bei neuer Anfrage (optional)
2.2 Admin-PrÃŒfung
Admin-Panel: /admin/guest-requests
VerfÃŒgbare Informationen:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Gastanfrage #42 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â Name: Max Mustermann â
â E-Mail: max.mustermann@example.com â
â Telefon: +49 123 456789 â
â Grund: Prototyp fÃŒr KundenprÀsentation drucken â
â Zugangsdauer: 3 Tage â
â Eingegangen: 15.06.2025 14:30 â
â Status: â³ Warten auf Genehmigung â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â [â
Genehmigen] [â Ablehnen] [ð¬ Nachfrage] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
2.3 Genehmigungsentscheidung
Mögliche Aktionen:
-
Genehmigen:
POST /api/requests/{id}/approve { "access_duration_hours": 72, "notes": "Genehmigt fÌr KundenprÀsentation" }
-
Ablehnen:
POST /api/requests/{id}/reject { "reason": "Unzureichende BegrÃŒndung", "notes": "Bitte weitere Details angeben" }
-
Nachfrage stellen:
POST /api/requests/{id}/request-info { "question": "Welche Materialien sollen verwendet werden?" }
Phase 3: OTP-System und Anmeldung (Offline)
3.1 OTP-Generierung (bei Genehmigung)
Lokaler Prozess:
# System generiert One-Time Password
otp_code = generate_secure_otp() # 6-stellig, numerisch
expiry_time = now() + timedelta(hours=access_duration)
# Automatischer Ausdruck fÃŒr Admin
print_guest_credentials(
guest_name=guest_name,
otp_code=otp_code,
expiry_time=expiry_time,
access_instructions=True
)
Ausgedruckte Zugangsdaten:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â MYP GASTZUGANG GENEHMIGT â
â TBA Marienfelde â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â Name: Max Mustermann â
â Anfrage-ID: GAS-2025-001234 â
â Genehmigt: 16.06.2025 10:30 â
â â
â ð ZUGANGSDATEN: â
â OTP-Code: 123456 â
â GÃŒltig bis: 18.06.2025 14:30 â
â â
â ð ANMELDUNG: â
â Terminal vor Ort oder â
â http://192.168.1.100:5000/auth/guest â
â â
â ð ANWEISUNGEN: â
â 1. Name eingeben: Max Mustermann â
â 2. OTP-Code eingeben: 123456 â
â 3. Druckdateien hochladen â
â 4. Auf Admin-Freigabe warten â
â â
â â ïž WICHTIGE HINWEISE: â
â ⢠Max. Druckzeit pro Job: 4 Stunden â
â ⢠Dateiformate: STL, OBJ, 3MF, GCODE â
â ⢠Bei Problemen: Mercedes-Benz Ansprechpartner â
â â
â [QR-Code fÃŒr Login-Seite] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ðšâðŒ ADMIN: Bitte an Gast aushÀndigen
3.2 Gast-Anmeldung
Endpunkt: /auth/guest
Login-Prozess:
- Name eingeben (wie auf Ausdruck)
- OTP-Code eingeben (vom ausgedruckten Zettel)
- System validiert OTP und GÃŒltigkeitsdauer
- Session mit eingeschrÀnkten Rechten erstellt
Session-Eigenschaften:
guest_session = {
"user_type": "guest",
"guest_name": "Max Mustermann",
"request_id": "GAS-2025-001234",
"expires_at": "2025-06-18T14:30:00",
"permissions": ["create_job", "view_own_jobs"],
"restrictions": {
"max_print_duration": 240, # 4 Stunden
"max_concurrent_jobs": 2,
"allowed_materials": ["PLA", "PETG"]
}
}
Phase 4: Druckauftrag-Erstellung
4.1 Job-Upload-Interface
VerfÌgbare Seiten fÌr GÀste:
/jobs
- Job-Ãbersicht (nur eigene Jobs)/jobs/create
- Neuen Job erstellen/printers
- Drucker-Status (nur Ansicht)
4.2 Job-Erstellung
Formular-Felder:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Neuen Druckauftrag erstellen â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â Job-Name: [KundenprÀsentation Prototyp ] â
â Beschreibung: [GehÀuse fÃŒr Elektronikmodul ] â
â â
â Datei-Upload: â
â âââââââââââââââââââââââââââââââ â
â â [ð] Datei auswÀhlen â .stl, .obj, .3mf â
â â oder hier hineinziehen â Max. 50MB â
â âââââââââââââââââââââââââââââââ â
â â
â GeschÀtzte Druckdauer: [240] Minuten â
â Material: [PLA âŒ] â
â PrioritÀt: [Normal âŒ] (Gast kann nur Normal) â
â â
â GewÃŒnschter Starttermin: â
â [ð
] [16.06.2025] [ð] [09:00] â
â â
â [â
Job erstellen] [â Abbrechen] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Validierung:
# Gast-spezifische Validierungen
def validate_guest_job(job_data, guest_session):
checks = {
"duration_check": job_data.duration <= 240, # Max 4h
"file_size_check": job_data.file_size <= 50 * 1024 * 1024, # 50MB
"concurrent_jobs": get_active_guest_jobs(guest_session.email) < 2,
"access_validity": guest_session.expires_at > now(),
"material_allowed": job_data.material in GUEST_ALLOWED_MATERIALS
}
return all(checks.values())
4.3 Automatische Drucker-Zuweisung
Intelligente Zuweisung:
def assign_printer_for_guest_job(job):
available_printers = get_available_printers(
time_slot=job.desired_start_time,
duration=job.estimated_duration,
material=job.material
)
# PrioritÀt fÌr Gastjobs: kÌrzeste Wartezeit
best_printer = min(available_printers,
key=lambda p: p.estimated_queue_time)
return best_printer
Phase 5: Job-Genehmigung und Scheduling
5.1 Admin-Genehmigung erforderlich
Alle Gast-Jobs benötigen Admin-Genehmigung:
Admin-Panel: /admin/jobs/pending
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Gast-Job wartet auf Genehmigung â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â Job: KundenprÀsentation Prototyp â
â Gast: Max Mustermann (max.mustermann@example.com) â
â Drucker: Prusa i3 MK3S #1 â
â Material: PLA â
â Dauer: 240 Minuten (4:00h) â
â Geplanter Start: 16.06.2025 09:00 â
â â
â Datei: gehaeuse_prototyp.stl (2.3 MB) â
â âââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â ð Datei-Vorschau â â
â â âââââââââââââââââââââââââââââââââââââââââââââââ â â
â â â 3D-Modell Vorschau â â â
â â â [Wireframe-Darstellung des STL] â â â
â â âââââââââââââââââââââââââââââââââââââââââââââââ â â
â âââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â
â [â
Genehmigen] [â Ablehnen] [âïž Bearbeiten] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
5.2 Genehmigungsoptionen
Admin-Aktionen:
-
Direkt genehmigen:
POST /api/admin/jobs/{job_id}/approve { "approved": true, "notes": "Job genehmigt, Material verfÃŒgbar" }
-
Mit Ãnderungen genehmigen:
POST /api/admin/jobs/{job_id}/approve { "approved": true, "modifications": { "material": "PETG", "start_time": "2025-06-16T14:00:00", "printer_id": 3 }, "notes": "Auf PETG geÀndert, anderer Drucker zugewiesen" }
-
Ablehnen:
POST /api/admin/jobs/{job_id}/reject { "reason": "Datei fehlerhaft", "notes": "STL-Datei enthÀlt nicht-druckbare Geometrien" }
Gast-Benachrichtigung bei Genehmigung:
- Dashboard-Update: Status Àndert sich automatisch
- Ausdruck fÃŒr Admin: Job-Details mit geplanter Startzeit
- Gast kann Status prÃŒfen: Ãber QR-Code oder Anfrage-ID
Phase 6: AusfÃŒhrung und Monitoring
6.1 Automatisches Scheduling
Bei Genehmigung:
def schedule_approved_job(job):
# Job in Warteschlange einreihen
job.status = "scheduled"
job.scheduled_start = calculate_optimal_start_time(job)
# Lokale Benachrichtigung fÃŒr Gast (Dashboard)
update_guest_dashboard_status(
guest_name=job.guest_name,
job_name=job.name,
scheduled_start=job.scheduled_start,
estimated_completion=job.scheduled_start + job.duration
)
# Kalender-Eintrag erstellen
create_calendar_event(
title=f"Gast-Job: {job.name}",
start_time=job.scheduled_start,
duration=job.duration,
printer=job.assigned_printer
)
# Ausdruck fÌr Gast (Admin hÀndigt aus)
print_job_schedule_info(job)
6.2 Automatische Drucksteuerung
Wenn Job an der Reihe:
def start_print_job(job):
printer = job.assigned_printer
# 1. Tapo-Steckdose einschalten
tapo_controller.turn_on(printer.plug_ip)
wait_for_printer_ready(printer, timeout=300) # 5 Min
# 2. Datei an Drucker senden (falls OctoPrint)
if printer.has_octoprint:
octoprint_client.upload_and_start(
file_path=job.file_path,
printer_ip=printer.ip_address
)
# 3. Status aktualisieren
job.status = "printing"
job.actual_start_time = now()
# 4. Gast-Dashboard aktualisieren
update_guest_dashboard_status(job.guest_name, "printing")
# 5. Ausdruck fÃŒr Admin (Gast informieren)
print_job_started_notification(job)
6.3 Live-Monitoring
Gast-Dashboard: /jobs/my
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Meine DruckauftrÀge â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â ðšïž KundenprÀsentation Prototyp â
â Status: â¡ Wird gedruckt â
â Fortschritt: ââââââââââââââââ 75% (3:00 / 4:00) â
â Drucker: Prusa i3 MK3S #1 â
â Gestartet: 16.06.2025 09:15 â
â GeschÀtzte Fertigstellung: 13:15 â
â â
â ð Live-Webcam Feed (falls verfÃŒgbar) â
â âââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â [Live-Kamera-Bild vom Drucker] â â
â âââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â
â â¡ Energieverbrauch: 45W â
â ð¡ïž Extruder-Temp: 210°C â
â ðïž Bett-Temp: 60°C â
â â
â [âžïž Pausieren] [ðš Problem melden] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Phase 7: Fertigstellung und Abholung
7.1 Automatische Benachrichtigung (Offline)
Bei Job-Completion:
def on_print_completion(job):
# 1. Status aktualisieren
job.status = "completed"
job.actual_end_time = now()
job.actual_duration = job.actual_end_time - job.actual_start_time
# 2. Drucker automatisch ausschalten
if job.auto_power_off:
schedule_delayed_power_off(job.printer, delay_minutes=30)
# 3. Gast-Dashboard aktualisieren
update_guest_dashboard_status(job.guest_name, "completed")
# 4. Automatischer Ausdruck fÃŒr Admin
print_job_completion_notification(
guest_name=job.guest_name,
job_name=job.name,
completion_time=job.actual_end_time,
pickup_location="TBA Marienfelde, Raum B2.1",
storage_info="7 Tage Lagerung, dann Entsorgung"
)
# 5. Admin-Dashboard-Benachrichtigung
create_pickup_reminder(
guest_name=job.guest_name,
job_name=job.name,
completion_time=job.actual_end_time
)
7.2 Abholungsmanagement
Admin-Panel: /admin/pickup-management
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Abholung ausstehend â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â ðŠ KundenprÀsentation Prototyp â
â Gast: Max Mustermann â
â E-Mail: max.mustermann@example.com â
â Telefon: +49 123 456789 â
â Fertiggestellt: 16.06.2025 13:15 â
â Lagerort: Regal B2.1-A3 â
â Ablauf Lagerung: 23.06.2025 â
â â
â Status: ðŽ Noch nicht abgeholt â
â â
â [â
Als abgeholt markieren] [ð§ Erinnerung senden] â
â [ðž Foto hinzufÃŒgen] [â ïž Problem melden] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ð Workflow-Metriken und KPIs
Typische Durchlaufzeiten
âââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Workflow-Phase â Durchschnitt â
âââââââââââââââââââââââââââââââââââŒââââââââââââââââââââ€
â Anfrage â Genehmigung â 2-4 Stunden â
â Genehmigung â OTP-Versand â Sofort â
â Job-Upload â Admin-Review â 1-2 Stunden â
â Genehmigung â Druckstart â Je nach Queue â
â Druckzeit (Ã) â 2-4 Stunden â
â Fertigstellung â Abholung â 1-3 Tage â
âââââââââââââââââââââââââââââââââââŽââââââââââââââââââââ
Erfolgsquoten
- Genehmigungsrate Gastzugang: 85%
- Job-Genehmigungsrate: 92%
- Erfolgreiche Drucke: 96%
- Fristgerechte Abholung: 78%
ð Sicherheitsaspekte
Datenschutz
- Gastdaten werden nach 30 Tagen automatisch gelöscht
- Druckdateien nach 7 Tagen entfernt
- E-Mail-Adressen werden nie fÃŒr Marketing verwendet
- DSGVO-konforme EinverstÀndniserklÀrung
ZugriffsbeschrÀnkungen
GUEST_PERMISSIONS = {
"view_own_jobs": True,
"create_job": True,
"view_printer_status": True,
"view_calendar": False, # Nur eigene Termine
"access_admin_panel": False,
"modify_other_jobs": False,
"control_printers": False
}
GUEST_LIMITATIONS = {
"max_print_duration": 240, # 4 Stunden
"max_file_size": 50 * 1024 * 1024, # 50MB
"max_concurrent_jobs": 2,
"access_duration": 168, # 7 Tage max
"allowed_materials": ["PLA", "PETG"],
"priority_level": "normal" # Keine hohe PrioritÀt
}
ð± Mobile Optimierung
Responsive Design
Das System ist vollstÀndig fÌr mobile GerÀte optimiert:
- Touch-optimierte Buttons (min. 44px)
- Swipe-Gesten fÃŒr Navigation
- Kompakte Listen-Ansichten
- Offline-FunktionalitÀt fÌr Status-Abfragen
PWA-Features
- Installation als App möglich
- Push-Benachrichtigungen fÃŒr Job-Updates
- Offline-Caching fÃŒr bereits geladene Inhalte
- Service Worker fÌr zuverlÀssige Performance
ðš Fehlerbehandlung und Edge Cases
HÀufige Probleme und Lösungen
1. OTP-Code funktioniert nicht
Mögliche Ursachen:
- Code abgelaufen (24h GÃŒltigkeit)
- Tippfehler bei Eingabe
- E-Mail nicht angekommen
Lösung:
- Automatische Code-Neugenerierung nach 3 Fehlversuchen
- Admin kann manuell neuen Code generieren
- Alternative: Telefon-Verifikation
2. Datei-Upload schlÀgt fehl
Mögliche Ursachen:
- DateigröÃe > 50MB
- UngÃŒltiges Dateiformat
- Netzwerk-Timeout
Lösung:
- Chunked Upload fÃŒr groÃe Dateien
- Format-Validierung mit hilfreichen Fehlermeldungen
- Automatische Retry-Mechanismen
3. Drucker nicht verfÃŒgbar
Mögliche Ursachen:
- Wartung lÀuft
- Defekt oder Materialfehler
- Andere Jobs haben PrioritÀt
Lösung:
- Automatische Neuplanung auf anderen Drucker
- Benachrichtigung an Gast mit neuer ZeitschÀtzung
- Admin-Eskalation bei kritischen Problemen
ð Continuous Improvement
Feedback-Integration
# Nach Job-Completion: Feedback-Request
def request_guest_feedback(job):
feedback_url = f"/feedback/{job.id}/{job.guest_token}"
send_email(
to=job.guest_email,
subject="Wie war Ihr Druckerlebnis?",
template="feedback_request",
data={
"job_name": job.name,
"feedback_url": feedback_url,
"rating_categories": [
"Anmeldeprozess",
"Benutzerfreundlichkeit",
"DruckqualitÀt",
"Kommunikation",
"Abholungsprozess"
]
}
)
Analytics und Reporting
- Durchlaufzeiten-Analyse
- Bottleneck-Identifikation
- Gastzufriedenheits-Scores
- Drucker-Auslastungsoptimierung
- Materialverbrauchs-Tracking
ð¯ Schulungsempfehlungen
FÃŒr Administratoren
-
Gastzugang-Management (30 Min)
- Anfragen bewerten und genehmigen
- OTP-System verwalten
- Probleme eskalieren
-
Job-Genehmigungsprozess (45 Min)
- Datei-QualitÀtsprÌfung
- Material- und ZeitschÀtzung
- Drucker-Zuweisungslogik
-
Abholungsmanagement (15 Min)
- Lagerung organisieren
- Erinnerungen versenden
- Dokumentation fÃŒhren
FÃŒr Gastbenutzer (Selbstschulung)
- Interaktive Demo:
/demo/guest-workflow
- Video-Tutorial: Schritt-fÃŒr-Schritt Anleitung
- FAQ-Bereich: HÀufige Fragen und Antworten
- Kontakt-Hotline: Bei technischen Problemen
Diese Dokumentation wird bei System-Updates automatisch aktualisiert und dient als Basis fÃŒr Schulungsmaterialien und Prozess-Optimierungen.