# Ideen-Board · Blueprint · v1.0

> **Regel für die KI (bitte zuerst lesen):**
> 1. Diese Datei ist das Gedächtnis des Projekts.
> 2. Beim ersten Einlesen: Falls es im Projekt noch keine `AGENTS.md` und `CLAUDE.md` gibt, lege sie an.
>    `AGENTS.md`:
>    ```
>    Lies zuerst BLUEPRINT.md: Es ist das Gedächtnis dieses Projekts.
>    @BLUEPRINT.md
>    Nach jeder Änderung am Projekt aktualisierst du BLUEPRINT.md und ergänzt den Changelog (Version hochzählen), im selben Commit wie die Änderung.
>    ```
>    `CLAUDE.md`:
>    ```
>    @AGENTS.md
>    ```
> 3. Nach jeder Änderung am Projekt aktualisierst du diese Datei und ergänzt den Changelog.
> 4. Keine Passwörter oder API-Keys in diese Datei.
> 5. **Für diesen Auftrag:** Arbeite komplett ohne Rückfragen durch. Alles Nötige ist eingerichtet (Abschnitt 7).

## 1. Warum

Im Workshop sollen alle Teilnehmenden Ideen sammeln, wo KI ihnen im Alltag etwas abnehmen könnte. Zettel, Chat oder Zurufe in einer Videokonferenz gehen unter, sind nicht anonym und lassen sich schlecht abstimmen. Am Ende soll klar sein, welche Idee wir heute gemeinsam live bauen.

## 2. Für wen

- Bis zu 20 Teilnehmende, Einsteiger ohne Technikhintergrund, die meisten am **Handy**
- Paul, der das Board per Bildschirmfreigabe zeigt und moderiert (Admin)

## 3. Was

1. **Anonym einreichen:** Titel (max. 60 Zeichen, Pflicht) und Beschreibung (max. 280 Zeichen, optional). Keine Namen, keine Anmeldung
2. **Alle Ideen als Karten**, sortiert nach Stimmen (bei Gleichstand die neueste zuerst). Die Top 3 sind hervorgehoben
3. **Abstimmen:** Daumen hoch, einmal pro Karte und Gerät (im Browser gemerkt). Nochmal tippen nimmt die Stimme zurück
4. **Live:** Die Seite holt alle 3 Sekunden den neuen Stand, ohne eine gerade begonnene Eingabe zu stören
5. **QR-Code** oben groß, damit alle sofort am Handy mitmachen
6. **Admin** (mit Passwort): Ideen löschen, Abstimmung beenden, Gewinner markieren (wird oben groß angezeigt), alles zurücksetzen
7. **Schutz:** Eingaben auf dem Server auf Länge prüfen und sicher anzeigen (kein HTML). Höchstens 10 neue Ideen pro Minute insgesamt. Keine IP-Adressen speichern, keine Cookies

**Nicht** Teil dieser Version (Stufe 2, falls Zeit bleibt): automatisch nach Themen sortieren, Ideen als schwebende Bubbles mit Mindmap.

## 4. Woran merke ich, dass es klappt?

Alle öffnen das Board per QR-Code am Handy, reichen in zwei Minuten ihre Ideen ein und sehen sofort, was die anderen geschrieben haben. Nach dem Abstimmen steht der Gewinner oben, und ich kann ihn mit einem Klick markieren.

## 5. Design-Richtung

- Stimmung: hell, freundlich, einladend (passend zur Kursseite)
- Farben: Hintergrund Creme `#fff7ee`, Text `#2f2a33`, Akzent Koralle `#ff8a5c`, dazu Pastell: Sonne `#ffd27a`, Mint `#7fd6b5`, Himmel `#8fb4ff`
- Schriften: Outfit (Überschriften), Inter (Text), große Schrift
- Vor allem fürs Handy, Karten mit runden Ecken (24 px) und weichen Schatten

## 6. Technik

Vorgegeben, weil vorher eingerichtet (nicht ändern, nichts zusätzlich installieren):

- Node.js mit den bereits installierten Paketen `express`, `better-sqlite3` und `qrcode`
- Daten in der SQLite-Datei `ideen.db` in diesem Ordner
- Dienst läuft als systemd-Service `ideen` auf Port 3100, Neustart mit `sudo systemctl restart ideen`
- Öffentlich unter `https://kurs.paulratka.de/ideen` (Caddy leitet `/ideen` an Port 3100 weiter), alle Pfade beginnen mit `/ideen`
- Admin-Passwort steht in der `.env` als `IDEEN_ADMIN_PASSWORT`
- Der Platzhalter in `server.js` wird ersetzt

## 7. Manuelle Schritte (Phase 2: Einrichten)

Alles bereits vor dem Workshop erledigt:

- [x] Subdomain `kurs.paulratka.de` zeigt auf den Server
- [x] Caddy leitet `/ideen` an Port 3100 weiter, HTTPS läuft
- [x] Ordner mit `package.json` und vorinstallierten Paketen
- [x] systemd-Dienst `ideen`, Neustart ohne Passwort erlaubt
- [x] `.env` mit Admin-Passwort

## 8. Bauphasen (Phase 3: Bauen)

| Phase | Was entsteht | So teste ich es | Status |
|---|---|---|---|
| 1 | Server mit Datenbank und Schnittstelle (Ideen anlegen, lesen, abstimmen, Admin) | per curl: Idee anlegen, abstimmen, Stimme zurücknehmen, falsches Admin-Passwort wird abgelehnt | offen |
| 2 | Seite fürs Handy: QR-Code, Formular, Karten, Live-Aktualisierung | Seite lädt, Idee erscheint ohne Neuladen | offen |
| 3 | Admin-Seite unter `/ideen/admin` | Gewinner markieren, erscheint oben | offen |
| 4 | Abschluss: Dienst neu starten, alles einmal selbst testen, Testeinträge löschen | Board ist leer und bereit | offen |

Zum Schluss in drei Sätzen sagen, was gebaut wurde und dass es unter `https://kurs.paulratka.de/ideen` läuft.

## 9. Offene Punkte und Ideen

- Stufe 2: Themen automatisch erkennen, Ideen-Wolke mit Bubbles (siehe `ideen-board.md`)

## Changelog

| Version | Datum | Änderung |
|---|---|---|
| 1.0 | [Workshop-Datum] | Blueprint erstellt, live im Workshop abgeschickt |
