abf96ca8f2ca7f6e0d03556ff249883c562bd5fa
Cockpit (V1, progressives Layout): - /cockpit zeigt nur Karten, die zum Status passen. Onboarding-Karte nur fuer Neue; Paarungs-Karte immer wenn aktiv; Drucker-Buchung erst nach L1 fertig. - Banner-System: ungelesene Lehrer-Notizen, offene Rueckfragen, eingegangene Paarungs-Anfragen. Check-In (V3 + E-021): - Modal beim ersten Cockpit-Aufruf eines Besuchstages. - "Ich arbeite weiter" als Default-Ein-Klick-Option. - Freitext optional. - POST /cockpit/check-in mit UNIQUE-Constraint pro Tag. Onboarding-Status (E-019): - /cockpit/lektion/<nr>/status (selbst-zertifiziert). - profil_lektion_status-Tabelle, ON CONFLICT-Upsert. Paarung (E-002): - profil_anfrage-Tabelle on-demand. - Anfrage stellen / annehmen / ablehnen / aufloesen. - Konflikt-Check (keine Doppel-Paarungen). - Banner im Cockpit des Adressaten. Lehrer-Dashboard (V5, docs/lehrer-dashboard.md): - /admin/dashboard mit 4 Sektionen (Wer ist heute hier / Wartet auf Review / Drucker-Status / Wer haengt fest) + Schnell-Zahlen + offene Rueckfragen. - "Notiz hinterlassen"-Quick-Action via lehrer_notiz-Tabelle. - Live-Drucker-Status kommt mit Etappe 5 (aktuell nur DB-Stand). Daten-Helper getrennt: - services/cockpit_status.py: Bundle fuer progressives Cockpit - services/dashboard_status.py: 4-Sektionen-Queries Vorgezogen aus Etappe 3: - /lektionen + /lektion/<nr> Minimal-Renderer mit Markdown - 3 Onboarding-Lektionen als Seeds (Platzhalter-Text fuer Markus) Smoke-Test bestanden: Login als neuer SuS -> Onboarding -> Check-In -> L1 fertig -> Paarung mit zweitem SuS -> Admin-Dashboard -> Lehrer-Notiz -> Banner im Cockpit.
3D-Druck-AG — Lernplattform
Web-Plattform für eine 3D-Druck-AG (Klasse 8 MINT, ca. 8-10 SuS, 4 Bambu-Lab-Drucker).
Status: Entwurf. Skelett angelegt, noch nicht lauffähig. Inhalte und Routen werden mit Markus + Herb sukzessive ergänzt.
Was die Plattform kann (geplant)
- Lektionen: Pflicht-Block L1-L3 (Drucker-Kennenlernen, fremdes Modell drucken, parametrischer Customizer), danach freier Block (TinkerCAD, OpenSCAD, eigenes Projekt).
- SuS-Cockpit: eigenes Profil mit Vorname + Tier-Icon + PIN. Projektstand, Druckaufträge, Slot-Reservierungen. Optional Paarung zu 2er-Gruppen.
- Drucker-Übersicht mit Live-Status via Bambu Cloud-API (oder manuell).
- Slot-Buchung für die 4 Drucker, Windhund-Prinzip mit Lehrer-Override.
- Stunden-Beginn-Abfrage ("Was machst du heute?") aggregiert im Lehrer-Dashboard.
- Admin-Inline-Edit für Lektionen, Software-Seiten, Profile.
Für wen ist das?
- Primär: Herb + Markus (Lehrkräfte), die SuS der AG.
- Sekundär: andere Lehrkräfte, die einen 3D-Druck-Kurs aufsetzen wollen — Code ist MIT-lizenziert (TODO), Setup-Anleitung folgt mit dem ersten Deploy.
Schnellstart (lokal, sobald lauffähig)
git clone <repo-url> 3d.lehrstun.de
cd 3d.lehrstun.de
python -m venv venv
source venv/Scripts/activate # Git-Bash auf Windows
# auf Linux/Mac: source venv/bin/activate
pip install -r requirements.txt
cp .env.beispiel .env # Werte eintragen!
python -c "from database import init_db; init_db()"
python app.py # http://localhost:5057
Technik-Stack
- Python 3.11+
- Flask + SQLite (kein ORM, plain SQL — wie beim Schwesterprojekt arduino.lehrstun.de)
- Bambu Lab Cloud-API für Drucker-Status (
bambulabs_apioder Code auspybambu) - Vanilla CSS + JS (keine Build-Tools, kein npm)
Schwesterprojekte
- arduino.lehrstun.de — Arduino-Kurs Klasse 8. Design-Vorlage und Code-Quelle für Login, Inline-Edit, Lektionen-Modul.
- PummelHummel/Alph — Feedback-Widget, hier identisch eingebunden.
Dokumentation
docs/kurskonzept.md— vollständiges didaktisches Konzept (für Markus + Herb)docs/decisions.md— Entscheidungs-LogCHANGELOG.mdCLAUDE.md— Projektstatus + Quickstart (für Claude/Herb)
Lizenz
TODO (vermutlich MIT, sobald das Repo öffentlich wird).
Description
Languages
Python
54.9%
HTML
41.5%
JavaScript
3.6%