Files
3d.lehrstun.de/docs/slotsystem.md
Hans Puettmann 76addcb846 Herr Rechmann + L3-Titel + L2-Workflow
Drei Aenderungen aus Herbs Feedback:

1. Markus -> Herr Rechmann (60 Treffer in 26 Dateien + DB-Lektionen L2/L3)
   Konvention: Herb bleibt 'Herb' (interne Anrede fuer Claude), Markus
   wird in SuS-sichtbaren Texten als 'Herr Rechmann' ausgeschrieben.
   Wo 'Herb und Markus' stand -> 'Herb und Herr Rechmann'. Wenn das
   stilistisch zu uneinheitlich wirkt, koennen wir Herb spaeter auch
   in SuS-Texten zu 'Herr Puettmann' umziehen.

2. L3-Titel: 'Customizer — parametrisches 3D-Modell anpassen'
   -> 'Mein eigenes 3D-Modell designen'
   Begruendung Herb: 'Customizer' + 'parametrisch' wirken abschreckend.
   Methode kommt in den Aufgabe-Text, nicht in den Titel.

3. L2-Inhalt komplett geschrieben (~4.8 KB):
   - 8-Schritte-Workflow vom Stoebern auf Printables bis zum
     Druck-Abholen
   - A1-mini-Spezifika klar markiert (offen → nur PLA, 18×18 cm)
   - P-Serie-Spezifika fuer groessere Drucke
   - Tipps zur Modell-Wahl (klein anfangen, 4+ Sterne)
   - Was-tun-wenn-Tabelle bei Druckproblemen
   - Lehrer-Eskalations-Pfad: pausieren via Handy-App + Lehrer rufen

   Quellenlage: PDF-Anleitung A1 mini im OneDrive + Bambu-Wiki online
   waren beide nicht maschinell zugaenglich (pdftoppm fehlt, Wiki
   gibt HTTP 402). Workflow basiert auf Standard-Bambu-Studio-Bedienung
   + Konsistenz mit der L1-P2S-Beschreibung. Herb/Herr Rechmann pruefen
   die A1-mini-Spezifika beim Lehrer-Test und korrigieren via Inline-Edit
   (oder per Migration, wenn Inline-Edit-UI noch nicht live ist).
2026-05-24 19:51:19 +02:00

4.0 KiB

type, projekt, stand, tags
type projekt stand tags
konzept-modul 3d.lehrstun.de 2026-05-23
konzept
slots
reservierung

Slot-System (Drucker-Reservierung)

DB-Tabelle: datenmodell#slot. Routes: routen. Drucker-Status: druckerapi.

Ziel

Faire Verteilung der 4 Drucker auf 8-10 SuS, die unterschiedlich lange Drucke fahren. Funktioniert auch bei Drucker-Ausfall (druckerapi kann brechen).

Default: Windhund-Prinzip

  • Wer zuerst kommt, bekommt den Slot.
  • Jede:r SuS reserviert selbst über das Cockpit.
  • Konflikt-Check: keine Überlappung mit aktiver/zukünftiger reservierter Reservierung auf demselben Drucker.

Override: Lehrer-Priorität

  • Im routen#admin kann Herb/Herr Rechmann pro Slot prioritaet setzen (Default 0, höher = wichtiger).
  • Sortierung im UI: ORDER BY prioritaet DESC, erstellt_am ASC.
  • Bei Konflikt durch Priorisierung: Site zeigt eine Warnung, verschiebt nichts automatisch — Herb entscheidet.

Slot-Granularität (Entscheidung offen)

Drei Optionen, siehe offene-fragen#slot-granularität:

Option Vorteil Nachteil
Freie Zeitspannen (Start + Dauer) flexibel, passt zu realer Druckzeit (15 Min - 8 h) Konflikt-Check komplexer
Feste Stunden-Slots einfach zu buchen, kalenderartig unflexibel — 4-h-Druck blockiert 4 Slots
Tages-Slots (Vormittag/Nachmittag/Nacht) passt zu langen Drucken zu grob für kurze Drucke

Empfehlung aus Recherche: freie Zeitspannen, weil Druckzeit stark variiert.

Drucker-Ausfall-Handling

Wenn druckerapi meldet status = failed oder offline für > 10 Min:

flowchart TB
    A[Drucker fällt aus] --> B{Aktive Slots betroffen?}
    B -- ja --> C[Dashboard: rote Markierung]
    C --> D[Vorschlag: Slot auf anderen Drucker verschieben]
    D --> E[Admin: 1-Klick-Verschieben]
    E --> F[Slot.drucker_id ändern]
    F --> G[Cockpit-Notiz für betroffene SuS]
    B -- nein --> H[Drucker als 'Wartung nötig' markieren]

Konflikt-Erkennung

-- Neue Reservierung würde mit bestehender überlappen?
SELECT COUNT(*) FROM slot
WHERE drucker_id = :drucker_id
  AND status IN ('reserviert', 'aktiv')
  AND start_zeit < :neue_ende
  AND ende_zeit > :neue_start;

Falls > 0 Treffer: Reservierung abgelehnt mit Liste der Konflikte.

UI-Skizze (Cockpit-Slot-Buchung)

┌─ Drucker reservieren ──────────────────────────┐
│                                                 │
│  Drucker:  [ ▼ P1S #1  ]                        │
│  Start:    [ Heute, 14:30  ]                    │
│  Dauer:    [ 2 h 30 m  ] (Schätzung aus 3MF)   │
│                                                 │
│  ┌─ Kalender ────────────────────────────────┐ │
│  │  P1S #1   ▓▓░░░░░░░░░░░░▓▓▓▓▓░░░░░░░░░░░ │ │
│  │  P1S #2   ░░░░░▓▓▓▓░░░░░░░░░░░░░░░▓▓▓░░░ │ │
│  │  X1C      ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │
│  │  A1 mini  ▓▓▓▓▓▓▓░░░░░░░░░░░▓▓░░░░░░░░░░ │ │
│  │          09  11  13  15  17  19  21  23 │ │
│  └────────────────────────────────────────────┘ │
│                                                 │
│  [ Reservieren ]                                │
└─────────────────────────────────────────────────┘

(Genaues Design folgt in etappen#etappe-6.)

Querverweise