Files
3d.lehrstun.de/CLAUDE.md

84 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: project
name: 3d.lehrstun.de
status: entwurf
domain: 3d.lehrstun.de
deployed: false
next_step: "Kurskonzept mit Herr Rechmann durchgehen, offene Fragen klären"
tags: [schule, 3d-druck, web, ag]
---
# 3D-Druck-AG — 3d.lehrstun.de
> Vault-Startseite: [[COCKPIT]]. Hauptkonzept: [[kurskonzept]]. Architektur: [[architektur]].
> Offene Klärungen: [[offene-fragen]]. Entscheidungen: [[decisions]]. Etappen: [[etappen]].
**Status:** **LIVE auf https://3d.lehrstun.de** (Stand 2026-05-25). 14 Lektionen + Login + Cockpit progressiv + Check-In + Paarung + Lehrer-Dashboard + PummelHummel/Alph für Lektions-Feedback. Markus testet via Schüler-Login. Drucker-API + Slot-System + Selbstlern-Loop kommen in späteren Etappen.
**Repo:** http://46.225.114.15:3000/admin/3d.lehrstun.de (SSH: `ssh://git@46.225.114.15:2222/admin/3d.lehrstun.de.git`)
**Live:** https://3d.lehrstun.de — systemd-Service `3d-ag.service`, Port intern **5058** (5057 von meta.lehrstun.de belegt; lokal nutzen wir 5057 weiterhin).
**Brand:** 3D-Druck-AG
**Admin-Passwort:** `Lessing3d` (live + Server-`.env`), lokal `lokal-test-123`
## Kontext (Kurzfassung)
- Wahl-AG Klasse 8 MINT, **8-10 Einzel-SuS** (optional 2er-Paarungen).
- **4 Bambu-Lab-Drucker**: 3× geschlossen (P1S/X1C/P2S) + 1× A1 mini (offen).
- Eigener Druckraum, dauergelüftet. PLA + PLA+ Default, PETG/ABS unter Aufsicht.
- Drucker dürfen über Nacht / Freistunden laufen.
- Herb hat 3D-Druck **selbst noch nie unterrichtet** — Inhalte folgen mit Herr Rechmann.
- Drucker-Status via **Bambu Cloud-API** (Polling, mit Fallback auf manuell).
- **Login:** Vorname + Tier-Icon + 4-stellige PIN. Sichtbarkeit: Lehrer voll, SuS nur Projekttitel.
## Quickstart (lokal)
```bash
cd D:/Claude-Projekte/3d.lehrstun.de
# Einmalig: venv + Pakete
python -m venv venv
venv/Scripts/python.exe -m pip install -r requirements.txt
cp .env.beispiel .env # ADMIN_PASSWORT eintragen!
# Schema + Initial-Seeds
venv/Scripts/python.exe seed.py
# App starten
venv/Scripts/python.exe app.py # http://localhost:5057
```
**Funktionierende Routen (Etappe 1):**
- `/` Startseite
- `/login` Profil-Kacheln (anfangs leer, im Admin anlegen)
- `/login/<id>` PIN-Eingabe mit persistentem Lockout (V7)
- `/cockpit` Stub (Etappe 2 macht das progressiv)
- `/admin/login` Admin-Login mit Passwort aus `.env`
- `/admin/profile` SuS-Profile + Neuanlage + PIN-Reset + aktiv-Toggle
- `/admin/profile/karten` Druckbogen für PIN-Karten (CSS-Print)
- `/admin/inline-edit` Universal-Endpoint mit Whitelist + Audit-Log
Alle anderen Routen geben **501** + Verweis auf die Etappe.
## Update-Workflow auf Hetzner (vor erstem Deploy noch einzurichten)
```bash
ssh herb@46.225.114.15
cd ~/3d.lehrstun.de
git pull origin master
sudo systemctl stop 3d-ag
python3 migrations/YYYY-MM-DD_xxx.py
sudo systemctl start 3d-ag
```
## Nächste Schritte
- [x] Skelett + Obsidian-Vault anlegen (2026-05-23)
- [x] Reality-Check + Konzept v2 (2026-05-24)
- [x] **Etappe 1: Blueprints + Schema + Login + Admin + Inline-Edit + Lockout** (2026-05-24)
- [ ] [[kurskonzept]] mit Herr Rechmann durchgehen
- [ ] [[offene-fragen]] klären (Bambu-Account, A1-mini-Firmware)
- [ ] Lokales Git-Repo + Gitea-Push
- [ ] **Etappe 2:** Cockpit progressiv + Check-In + Paarung + [[lehrer-dashboard|Lehrer-Dashboard]]
- [ ] Etappe 3: Lektionen + Software-Sektion + Troubleshooting
- [ ] Etappe 4: Drucker-API-Spike → [[druckerapi]]
- [ ] DNS-A-Record `3d.lehrstun.de` → 46.225.114.15 (via Hetzner Cloud DNS-CLI, vor Etappe 9)
## Querverbindungen
- Schwester-Projekt: `D:/Claude-Projekte/arduino.lehrstun.de/` (Stack + Design + Code-Quelle)
- PummelHummel/Alph: `D:/Claude-Projekte/PummelHummel/` (Integration in Etappe 8)
- Hetzner-DNS-CLI: `D:/Claude-Projekte/hetzner-dns-cli/`
- Detail-Doku: `docs/` (22 Markdown-Dateien als Obsidian-Vault verlinkt)