Initial commit: Konzept v2 + Etappe 1 (Blueprints + Login + Profile)
Schwester-Projekt zu arduino.lehrstun.de fuer die 3D-Druck-AG am Lessing-Gymnasium. Offene jahrelange Nachmittags-AG (kein Trimester), 8-10 Einzel-SuS mit optionalen 2er-Paarungen, 4 Bambu-Lab-Drucker (3 geschlossen + 1 A1 mini). Konzept v2 (Reality-Check-Iteration 2026-05-24): - Onboarding-Pfad statt Pflicht-Lektionen (L1-L3 selbst-zertifiziert) - Selbstlern-Loop als Kern: SuS-Projekte wachsen die interne Bibliothek - Drill-Down-Lehrer-Dashboard (Wer ist hier / Wartet Review / Haengt fest) - Cockpit progressiv: zeigt nur was zum Status passt - Bambu-Cloud-API fuer Drucker-Live-Status (fragil + Fallback manuell) - Three.js-Vorschau fuer Cover-aus-3D-Ansicht (Etappe 6) - Vollstaendige Doku als Obsidian-Vault (24 Markdown-Dateien) - Entscheidungen E-001 bis E-022 in docs/decisions.md Etappe 1 lauffaehig (~1800 Zeilen Code): - Blueprint-Struktur (V8): routes/oeffentlich+profil+admin+api, services/auth+bambu+datei - Komplettes Schema in database.py (14 Tabellen, idempotent) - Login mit bcrypt + persistentem Lockout in DB (V7, verbessert ggue Arduino-Kurs der In-Memory-Dict nutzt) - Admin-Login + Profile-CRUD + PIN-Reset + PIN-Karten-Druckbogen - Inline-Edit-Endpunkt mit Whitelist + Audit-Log - Seeds: AG lessing-3d-ag + 4 Drucker + Default-Einstellungen - Smoke-Test bestanden (Login, Profil-Anlage, Lockout-Logging) Nicht im Repo (.gitignore): .env, *.db, venv/, .obsidian/workspace.json
This commit is contained in:
142
COCKPIT.md
Normal file
142
COCKPIT.md
Normal file
@@ -0,0 +1,142 @@
|
||||
---
|
||||
type: cockpit
|
||||
projekt: 3d.lehrstun.de
|
||||
status: etappe-1-lauffaehig
|
||||
stand: 2026-05-24
|
||||
tags: [3d-druck, ag, schule, cockpit]
|
||||
---
|
||||
|
||||
# 3D-Druck-AG — Cockpit
|
||||
|
||||
> **Vault-Startseite.** Wenn du diesen Ordner in Obsidian öffnest, landest du hier.
|
||||
> Von hier verlinken Wikilinks (`[[Name]]`) auf alle Detail-Dateien des Konzepts.
|
||||
|
||||
## Status auf einen Blick
|
||||
|
||||
- **Stand:** Konzept v2 + **Etappe 1 lokal lauffaehig** (Login + Admin + Inline-Edit + Blueprint-Struktur, Smoke-Test bestanden). Code: ~1800 Zeilen Python+HTML.
|
||||
- **Nichts deployed**, DNS noch nicht gesetzt.
|
||||
- **Nächster Schritt:** Etappe 2 — progressives Cockpit, Check-In, Paarung, [[lehrer-dashboard|Lehrer-Dashboard]]. Oder vorher: Markus liest [[kurskonzept]] + [[selbstlern-loop]] + [[lehrer-dashboard]].
|
||||
- **Offene Klärungen:** [[offene-fragen]] (Bambu-Cloud-Account, A1-mini-Firmware, ZSL-Projekt-Auswahl)
|
||||
- **Lokal starten:** `venv/Scripts/python.exe app.py` → http://localhost:5057 (Admin-PW lokal: `lokal-test-123`)
|
||||
|
||||
## Architektur in einem Bild
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Public["Öffentlich (kein Login)"]
|
||||
L[Onboarding-Pfad<br/>+ freie Module]
|
||||
S[Software-Sektion]
|
||||
P[Projekt-Katalog<br/>SuS-Projekte + ZSL-Seed]
|
||||
T[Troubleshooting]
|
||||
D[Drucker-Live-Status]
|
||||
end
|
||||
|
||||
subgraph Profil["Profil (Vorname + Tier + PIN)"]
|
||||
C[Cockpit progressiv]
|
||||
CI[Check-In 'Was machst du heute?']
|
||||
EP[Eigene Projekte<br/>im Lebenszyklus]
|
||||
AB[Abschluss-Checkliste]
|
||||
SL[Slot-Reservierungen<br/>nach L1 fertig]
|
||||
end
|
||||
|
||||
subgraph Admin["Admin (Herb + Markus)"]
|
||||
AD[Drill-Down-Dashboard]
|
||||
RQ[Review-Queue<br/>+ Three.js-Vorschau]
|
||||
DAQ[Druck-Queue]
|
||||
ADR[Drucker-Verwaltung]
|
||||
ALE[Inline-Edit für Lektionen]
|
||||
end
|
||||
|
||||
subgraph Extern["Externe Systeme"]
|
||||
BC[Bambu Cloud-API]
|
||||
BS[Bambu Studio<br/>auf Schul-PCs]
|
||||
BH[Bambu Handy App]
|
||||
PR[Printables /<br/>MakerWorld]
|
||||
TC[TinkerCAD]
|
||||
OS[OpenSCAD]
|
||||
ZSL[ZSL Baden-Württemberg<br/>CC-BY-4.0 Material]
|
||||
end
|
||||
|
||||
Public --> Profil
|
||||
Profil --> Admin
|
||||
AB --> RQ
|
||||
RQ --> P
|
||||
AD -.Polling 30s.-> BC
|
||||
BC -.Status.-> D
|
||||
L --> PR
|
||||
L --> TC
|
||||
L --> OS
|
||||
BS --> BC
|
||||
BH --> BC
|
||||
ZSL -.Initial-Seed.-> P
|
||||
|
||||
classDef extern fill:#FEF9E7,stroke:#F5C842
|
||||
class BC,BS,BH,PR,TC,OS,ZSL extern
|
||||
```
|
||||
|
||||
## Inhalt des Vaults
|
||||
|
||||
### Wurzel
|
||||
- [[CLAUDE]] — Projektstatus + Quickstart (für Claude/Herb)
|
||||
- [[README]] — Vorstellung für Markus + Aussenstehende
|
||||
- [[CHANGELOG]] — was wurde wann angelegt
|
||||
|
||||
### Konzept
|
||||
- [[kurskonzept]] — **Hauptdokument v2**, vollständiges Konzept zum Lesen (Markus, am Stück lesbar)
|
||||
- [[selbstlern-loop]] — **Kern-Mechanismus** der AG: Wie Projekte wachsen + vernetzt werden
|
||||
- [[lehrer-dashboard]] — **Drill-Down-Konzept** für Herb + Markus
|
||||
- [[architektur]] — Komponentensicht mit Mermaid-Diagramm
|
||||
- [[datenmodell]] — SQLite-Schema als ERD (mit allen neuen Tabellen)
|
||||
- [[routen]] — Vollständige Routen-Liste mit Blueprint-Aufteilung
|
||||
- [[druckerapi]] — Bambu Cloud-API-Anbindung, Fallback, Risiken
|
||||
- [[slotsystem]] — Reservierung, Windhund, Priorisierung, Ausfall-Handling
|
||||
- [[sicherheit]] — Druckraum, Material, A1 mini
|
||||
- [[etappen]] — Implementierungs-Etappen 0-9 (mit Blueprint-Struktur von Anfang an)
|
||||
- [[offene-fragen]] — was wir noch besprechen müssen
|
||||
- [[glossar]] — 3D-Druck-Begriffe für SuS und Markus
|
||||
|
||||
### Lektionen (Pflicht, Inhalte folgen)
|
||||
- [[lektion-L1-drucker-kennenlernen]]
|
||||
- [[lektion-L2-modell-drucken]]
|
||||
- [[lektion-L3-customizer]]
|
||||
|
||||
### Software-Tools (Stubs)
|
||||
- [[software-bambu-studio]]
|
||||
- [[software-bambu-handy]]
|
||||
- [[software-printables]]
|
||||
- [[software-makerworld]]
|
||||
- [[software-tinkercad]]
|
||||
- [[software-openscad]]
|
||||
|
||||
### Entscheidungen
|
||||
- [[decisions]] — Entscheidungs-Log, neueste oben
|
||||
|
||||
## Wichtige externe Quellen
|
||||
|
||||
- [Bambu Lab Academy](https://bambulab.com/en/support/academy) — Drucker-Kurse mit Zertifikat
|
||||
- [PHBern IdeenSet 3D-Drucken](https://www.phbern.ch/dienstleistungen/unterrichtsmedien/ideenset-3d-drucken)
|
||||
- [inf-schule.de 3D-Druck](https://inf-schule.de/informatiksysteme/3d_druck)
|
||||
- [UKBW Sicherheit (PDF)](https://www.ukbw.de/fileadmin/user_upload/Sicherer-Umgang-mit-3D-Druckern-in-der-Schule.pdf)
|
||||
- [bambulabs_api (GitHub)](https://github.com/BambuTools/bambulabs_api)
|
||||
- [OpenBambuAPI (Protokoll-Doku)](https://github.com/Doridian/OpenBambuAPI)
|
||||
|
||||
## Tags-Übersicht
|
||||
|
||||
- `#konzept` — Architektur-/Konzept-Dateien
|
||||
- `#kern` — die zentralen Module ([[selbstlern-loop]], [[lehrer-dashboard]])
|
||||
- `#lektion` — Lektions-Inhalte
|
||||
- `#software` — Software-Tool-Beschreibungen
|
||||
- `#offen` — noch zu klären
|
||||
- `#entscheidung` — getroffene Entscheidung
|
||||
- `#druckerapi` — alles zur Bambu-Anbindung
|
||||
|
||||
## Hinweis für Markus
|
||||
|
||||
Dieser Vault ist Markdown-only. Du kannst ihn mit Obsidian öffnen
|
||||
(`File → Open vault → diesen Ordner wählen`) und kriegst dann:
|
||||
- **Wikilinks** (`[[…]]`) zum Springen zwischen Dateien
|
||||
- **Graph-View** zur visuellen Übersicht der Querverbindungen
|
||||
- **Backlinks** rechts: wer verlinkt auf die aktuelle Datei
|
||||
|
||||
Du kannst die Dateien aber auch mit jedem anderen Editor (VSCode, Notepad++,
|
||||
sogar Notepad) lesen — sie sind reines Markdown.
|
||||
Reference in New Issue
Block a user