# Quizalarm — Baserow Tabellenstruktur

Diese Anleitung beschreibt, wie die benötigten Tabellen in Baserow angelegt werden.

---

## Voraussetzungen

- Baserow erreichbar unter `https://br.orfel.de`
- Ein API-Token erstellt unter: **Settings → API Tokens → Create Token**
  - Rechte: mindestens `create`, `read`, `update` für alle relevanten Tabellen

---

## 1. Datenbank anlegen

1. In Baserow einloggen
2. Klicke auf **+ Create database**
3. Name: `Quizalarm`

---

## 2. Antworten-Tabelle anlegen

Diese Tabelle speichert ALLE Ergebnisse (Live + Solo). Es gibt nur eine einzige.

1. In der Datenbank `Quizalarm` → **+ Add table** → Name: `Antworten`
2. Lösche die automatisch erstellten Beispiel-Spalten
3. Erstelle folgende Felder:

| Nr. | Feldname      | Feldtyp          | Optionen / Hinweis                  |
|-----|---------------|------------------|-------------------------------------|
| 1   | `Nutzername`  | Single line text |                                     |
| 2   | `Frage_ID`    | Number (Integer) |                                     |
| 3   | `Fragenset`   | Single line text |                                     |
| 4   | `Antwort`     | Single line text | Enthält z.B. `A,C` oder `Berlin`    |
| 5   | `Richtig`     | Boolean          |                                     |
| 6   | `Punkte`      | Number (Integer) |                                     |
| 7   | `Session_ID`  | Single line text | z.B. `LIVE-M3K7X` oder `SOLO-K8P2Q` |
| 8   | `Modus`       | Single select    | Optionen anlegen: `Live`, `Solo`    |
| 9   | `Zeitstempel` | Date             | ✅ "Include time" aktivieren        |

1. **Table-ID notieren**: Klicke auf die Tabelle → die URL enthält `/database/TABLE_ID/...`

---

## 3. Fragenset-Tabellen anlegen

Für jedes Fragenset wird eine eigene Tabelle erstellt. Der Aufbau ist immer identisch.

### Schritt-für-Schritt

1. In der Datenbank `Quizalarm` → **+ Add table**
2. Name = Name des Fragensets (z.B. `IT-Grundlagen`, `Erste Hilfe`, `Brandschutz`)
3. Lösche die automatisch erstellten Beispiel-Spalten
4. Erstelle folgende Felder:

| Nr. | Feldname           | Feldtyp          | Optionen / Hinweis                                |
|-----|--------------------|------------------|---------------------------------------------------|
| 1   | `Frage`            | Long text        | Der vollständige Fragetext                        |
| 2   | `Typ`              | Single select    | Optionen anlegen: `MC`, `Wahr/Falsch`, `Freitext` |
| 3   | `Bild`             | File             | Optional — Bild zur Frage hochladen               |
| 4   | `Antwort A`        | Single line text | Bei Wahr/Falsch: `Wahr`                           |
| 5   | `Antwort B`        | Single line text | Bei Wahr/Falsch: `Falsch`                         |
| 6   | `Antwort C`        | Single line text | Leer lassen bei Wahr/Falsch oder 2 Antworten      |
| 7   | `Antwort D`        | Single line text | Leer lassen bei weniger als 4 Antworten           |
| 8   | `Richtige Antwort` | Single line text | Siehe Ausfüllregeln unten                         |
| 9   | `Kategorie`        | Single select    | Optional — z.B. `Geografie`, `Technik`, `Recht`   |

1. **Table-ID notieren**: URL enthält `/database/TABLE_ID/...`

---

## 4. Ausfüllregeln für "Richtige Antwort"

| Fragetyp       | Beispiel-Wert | Erklärung                                      |
|----------------|---------------|------------------------------------------------|
| MC (1 richtig) | `A`           | Nur der Buchstabe der richtigen Antwort        |
| MC (mehrere)   | `A,C`         | Kommagetrennt, ohne Leerzeichen                |
| Wahr/Falsch    | `A`           | `A` = Wahr, `B` = Falsch                       |
| Freitext       | `Berlin`      | Das erwartete Wort (Groß/Kleinschreibung egal) |

### Freitext-Toleranz

Die App normalisiert Eingaben automatisch:

- Groß/Kleinschreibung wird ignoriert
- Sonderzeichen (Bindestriche, Leerzeichen etc.) werden entfernt
- Umlaute werden umgewandelt (ä→ae, ö→oe, ü→ue, ß→ss)

**Beispiel:** Richtige Antwort = `Villingen-Schwenningen`

- ✅ `villingen schwenningen`
- ✅ `villingenschwenningen`
- ✅ `Villingen Schwenningen`
- ❌ `Villingen` (unvollständig)
- ❌ `Stuttgart` (falsch)

---

## 5. Beispielfragen

### MC mit 4 Antworten

| Frage                                           | Typ | Antwort A | Antwort B | Antwort C | Antwort D | Richtige Antwort | Kategorie |
|-------------------------------------------------|-----|-----------|-----------|-----------|-----------|------------------|-----------|
| Wie heißt die Hauptstadt von Baden-Württemberg? | MC  | Stuttgart | Karlsruhe | Freiburg  | Mannheim  | A                | Geografie |

### MC mit mehreren richtigen Antworten

| Frage                            | Typ | Antwort A | Antwort B | Antwort C | Antwort D | Richtige Antwort | Kategorie |
|----------------------------------|-----|-----------|-----------|-----------|-----------|------------------|-----------|
| Welche sind Programmiersprachen? | MC  | Python    | HTML      | Java      | Photoshop | A,C              | IT        |

### MC mit 3 Antworten

| Frage                             | Typ | Antwort A | Antwort B | Antwort C | Antwort D | Richtige Antwort | Kategorie |
|-----------------------------------|-----|-----------|-----------|-----------|-----------|------------------|-----------|
| Welche Farbe hat ein Stoppschild? | MC  | Rot       | Blau      | Grün      | *(leer)*  | A                | Verkehr   |

### Wahr/Falsch

| Frage                      | Typ         | Antwort A | Antwort B | Antwort C | Antwort D | Richtige Antwort | Kategorie |
|----------------------------|-------------|-----------|-----------|-----------|-----------|------------------|-----------|
| Die Erde ist eine Scheibe. | Wahr/Falsch | Wahr      | Falsch    | *(leer)*  | *(leer)*  | B                | Allgemein |

### Freitext

| Frage                                    | Typ      | Antwort A | Antwort B | Antwort C | Antwort D | Richtige Antwort | Kategorie |
|------------------------------------------|----------|-----------|-----------|-----------|-----------|------------------|-----------|
| Wie heißt die Hauptstadt von Frankreich? | Freitext | *(leer)*  | *(leer)*  | *(leer)*  | *(leer)*  | Paris            | Geografie |

### Mit Bild

| Frage                             | Typ | Bild               | Antwort A | Antwort B | Antwort C     | Antwort D  | Richtige Antwort | Kategorie |
|-----------------------------------|-----|--------------------|-----------|-----------|---------------|------------|------------------|-----------|
| Was zeigt dieses Verkehrszeichen? | MC  | *(Bild hochladen)* | Vorfahrt  | Stopp     | Einbahnstraße | Parkverbot | B                | Verkehr   |

---

## 6. Checkliste

- [ ] Datenbank `Quizalarm` angelegt
- [ ] Tabelle `Antworten` mit allen 9 Feldern erstellt
- [ ] Mindestens 1 Fragenset-Tabelle mit allen 9 Feldern erstellt
- [ ] Testfragen eingetragen
- [ ] API-Token erstellt (Settings → API Tokens)
- [ ] Alle Table-IDs notiert
- [ ] Table-IDs im Admin-Panel unter `https://quizalarm.orfel.de/admin` hinterlegt
