# Dokumentation

# feiafanga Backend - Benutzerhandbuch

## Inhaltsverzeichnis

1. Anmeldung
2. Übersicht der Funktionen
3. Collections im Detail
4. Grundlegende Bedienung
5. Erweiterte Funktionen
6. Design-Einstellungen

---

## Anmeldung

### Login

1. Öffne das Backend unter deiner Backend-URL
2. Gib deine E-Mail-Adresse ein
3. Gib dein Passwort ein
4. Klicke auf **"Anmelden"**

### Als Editor registrieren

- Falls du noch keinen Account hast, klicke auf den Link **"Als Editor registrieren"**
- Nach der Registrierung kannst du dich mit deinen Zugangsdaten anmelden

---

## Übersicht der Funktionen

Nach der Anmeldung siehst du folgende Bereiche:

### Header

- **Logo und Versionsnummer**: Oben links
- **Design-Button**: Ermöglicht die Anpassung von Theme und Akzentfarbe
- **Benutzer-Info**: Zeigt deine E-Mail-Adresse
- **Abmelden-Button**: Beendet die Sitzung

### Tab-Leiste

Hier kannst du zwischen verschiedenen Collections wechseln:

- Impulse
- Orte
- Quests
- Events
- Gruppen
- Wiki
- Anmeldungen (nur Ansicht)
- Kommentare (nur Ansicht)
- Benutzer (nur Ansicht)
- Umfragen
- Umfrage Antworten (nur Ansicht)
- Gruppen Chat (nur Ansicht)

---

## Collections im Detail

### Impulse (editierbar)

**Zweck**: Verwalte Inhalte, die an Firmlinge ausgespielt werden

**Felder**:

- **Titel**: Überschrift des Impulses
- **Beschreibung**: Kurze Zusammenfassung
- **Inhalt**: Haupttext des Impulses
- **Typ**: Art des Impulses (Text, Question, Image, Video, Audio)
- **Medien**: Upload von Bildern, Videos oder Audio-Dateien
- **Datum**: Veröffentlichungsdatum (wird als 12 Uhr Berliner Zeit gespeichert)
- **Link**: Optionaler externer Link
- **Kommentare**: Aktiviere/Deaktiviere Kommentarfunktion
- **Fotoupload**: Erlaube Benutzern, Fotos hochzuladen
- **Gruppe**: Zuordnung zu einer Gruppe
- **Quest**: Verknüpfung mit einem Quest
- **Event**: Verknüpfung mit einem Event

**Besonderheiten**:

- Mehrfachauswahl bei Löschung möglich
- Medien können als ZIP heruntergeladen werden
- Questions können automatisch über einen Zeitraum verteilt werden

### Orte (editierbar)

**Zweck**: GPS-Koordinaten für die Karten-Ansicht

**Felder**:

- **Name**: Bezeichnung des Ortes
- **Längengrad**: Longitude-Wert
- **Breitengrad**: Latitude-Wert
- **Aktiv**: Ort wird in der App angezeigt
- **Zusatzinfo**: Quest oder Chest

### Quests (editierbar)

**Zweck**: Fragen für die Schnitzeljagd-Funktion

**Felder**:

- **Frage**: Die Quest-Frage
- **Antwort**: Die richtige Antwort
- **Optionen**: JSON-Array mit Antwortmöglichkeiten

**Besonderheiten**:

- QR-Code-Generierung für jeden Quest
- QR-Codes können heruntergeladen werden

### Events (editierbar)

**Zweck**: Termine und Veranstaltungen verwalten

**Felder**:

- **Titel**: Name des Events
- **Inhalt**: Beschreibung
- **Ortsname**: Veranstaltungsort
- **Start**: Startzeit (wird mit Datum kombiniert)
- **Ende**: Endzeit (wird mit Datum kombiniert)
- **Datum**: Datum des Events (über Push-Feld)
- **E-Mail**: Kontakt-E-Mail (wird automatisch mit deiner E-Mail vorausgefüllt)
- **Anmeldung notwendig**: Aktiviere Anmeldefunktion
- **Ausgebucht**: Event ist voll
- **Gruppe**: Zuordnung zu einer Gruppe

**Besonderheiten**:

- Nach Gruppe gruppierbar
- Start- und Endzeit werden als Uhrzeiten eingegeben und mit dem Push-Datum kombiniert

### Gruppen (editierbar)

**Zweck**: Verwaltung von Firmgruppen

**Felder**:

- **Name**: Gruppenname

**Hinweis**: Du siehst nur Gruppen, die dir zugeordnet sind (außer du hast keine Gruppen zugewiesen, dann siehst du alle)

### Wiki (editierbar)

**Zweck**: Wissensdatenbank für Glaubensbegriffe

**Felder**:

- **Begriff**: Der zu erklärende Begriff
- **Erklärung**: Ausführliche Erklärung
- **Bedeutung**: Theologische Bedeutung
- **Kurzbeschreibung**: Zusammenfassung
- **Symbole**: Zugehörige Symbole
- **Besonderheiten**: Weitere Hinweise

### Anmeldungen (nur Ansicht)

**Zweck**: Übersicht über Event-Anmeldungen

**Felder**:

- **Event**: Name des Events
- **Event-ID**: Interne ID
- **Name**: Name des Teilnehmers
- **E-Mail**: E-Mail-Adresse
- **Sonstiges**: Zusätzliche Informationen
- **Benutzer**: Verknüpfung zum User

**Besonderheiten**:

- Nach Event gruppierbar
- Gruppen können ein-/ausgeklappt werden

### Kommentare (nur Ansicht)

**Zweck**: Übersicht über Benutzer-Kommentare

**Felder**:

- **Inhalt**: Kommentartext
- **Benutzer**: User-ID
- **Benutzername**: Name des Kommentierenden
- **Impuls**: Zugehöriger Impuls

**Besonderheiten**:

- Nach Gruppe gruppierbar
- Mehrfachauswahl zum Löschen möglich
- Checkbox "Alle auswählen" verfügbar

### Benutzer (nur Ansicht)

**Zweck**: Übersicht über registrierte Firmlinge

**Felder**:

- **E-Mail**: E-Mail-Adresse
- **Name**: Benutzername
- **Badges**: Gesammelte Achievements
- **Aktualisiert**: Letztes Update
- **Gruppe**: Zugeordnete Gruppe

**Besonderheiten**:

- Nach Gruppe gruppierbar
- Zeigt Gruppenname und Gruppen-ID

### Umfragen (editierbar)

**Zweck**: Umfragen für Impulse erstellen

**Felder**:

- **Frage**: Die Umfragefrage
- **Optionen**: Antwortmöglichkeiten (mit Semikolon trennen, z.B. "Option A;Option B;Option C")
- **Typ**: Einfachauswahl oder Mehrfachauswahl
- **Impuls**: Zuordnung zu einem Impuls
- **Aktiv**: Umfrage ist sichtbar

### Umfrage Antworten (nur Ansicht)

**Zweck**: Auswertung der Umfrage-Ergebnisse

**Felder**:

- **Umfrage**: Zugehörige Umfrage
- **Benutzer**: User-ID
- **Antworten**: Gegebene Antworten

### Gruppen Chat (nur Ansicht)

**Zweck**: Übersicht über Gruppenchat-Nachrichten

**Felder**:

- **Inhalt**: Nachrichtentext
- **Benutzer**: User-ID
- **Benutzername**: Name des Absenders
- **Gruppe**: Zugehörige Gruppe
- **Medien**: Angehängte Dateien

**Besonderheiten**:

- Nach Gruppe gruppierbar
- Mehrfachauswahl zum Löschen möglich
- Medien werden als Vorschau angezeigt

---

## Grundlegende Bedienung

### Neuen Eintrag erstellen

1. Wähle die gewünschte Collection aus der Tab-Leiste
2. Klicke auf **"+ Neu"**
3. Fülle alle erforderlichen Felder aus
4. Klicke auf **"Speichern"**

### Eintrag bearbeiten

1. Finde den Eintrag in der Tabelle
2. Klicke auf **"Bearbeiten"**
3. Ändere die gewünschten Felder
4. Klicke auf **"Speichern"**

### Eintrag löschen

1. Finde den Eintrag in der Tabelle
2. Klicke auf **"Löschen"**
3. Bestätige die Sicherheitsabfrage

### Eintrag duplizieren

1. Finde den Eintrag in der Tabelle
2. Klicke auf **"Duplizieren"**
3. Bestätige die Aktion
4. Ein neuer Eintrag wird mit dem Zusatz "(Kopie)" erstellt

### Suchen

- Nutze das Suchfeld oberhalb der Tabelle
- Die Suche durchsucht alle sichtbaren Felder
- Die Ergebnisse werden in Echtzeit gefiltert

### Sortieren

- Klicke auf einen Spaltenkopf, um nach dieser Spalte zu sortieren
- Ein weiterer Klick kehrt die Sortierrichtung um
- Die sortierte Spalte wird hervorgehoben (Pfeil-Symbol)

---

## Erweiterte Funktionen

### Aktionen-Menü

Über den Button **"Aktionen ▼"** erreichst du:

#### CSV Export

1. Klicke auf **"CSV Export"**
2. Eine CSV-Datei mit allen Einträgen der aktuellen Collection wird heruntergeladen
3. Dateiname enthält Collection-Name und Datum

#### CSV Import

1. Klicke auf **"CSV Import"**
2. Wähle eine CSV-Datei aus
3. Das System erkennt automatisch: 
    - Neue Einträge (werden erstellt)
    - Vorhandene Einträge mit ID (werden aktualisiert)
4. Eine Zusammenfassung zeigt Erfolge und Fehler

**CSV-Format**:

- Header-Zeile mit Feldnamen erforderlich
- Gruppennamen werden automatisch in IDs konvertiert
- Quest-Fragen werden in IDs konvertiert
- Medien mit `|` trennen (z.B. `bild1.jpg|bild2.jpg`)
- Boolean-Werte: `Ja`, `ja`, `true`, `1` für true

#### Medien herunterladen (nur Impulse)

1. Klicke auf **"Medien herunterladen"**
2. Bestätige die Aktion
3. Ein ZIP-Archiv mit allen Mediendateien wird erstellt
4. Dateinamen werden mit Record-ID versehen

#### Questions verteilen (nur Impulse)

1. Klicke auf **"Questions verteilen"**
2. Gib Startdatum und -zeit ein
3. Gib Enddatum und -zeit ein
4. Das System verteilt alle Questions gleichmäßig über den Zeitraum
5. Die ursprüngliche Uhrzeit wird beibehalten

### Gruppierung

#### Nach Event gruppieren (Anmeldungen)

1. Aktiviere die Checkbox **"Nach Event gruppieren"**
2. Anmeldungen werden nach Events sortiert
3. Jede Gruppe zeigt die Anzahl der Anmeldungen
4. Klicke auf eine Gruppe zum Ein-/Ausklappen

#### Nach Gruppe gruppieren (Benutzer, Events, Kommentare, Gruppen Chat)

1. Aktiviere die Checkbox **"Nach Gruppe gruppieren"**
2. Einträge werden nach Gruppen sortiert
3. Jede Gruppe zeigt die Anzahl der Einträge
4. Klicke auf eine Gruppe zum Ein-/Ausklappen

### Mehrfachauswahl (Impulse, Kommentare, Gruppen Chat)

1. Aktiviere die Checkbox in der Tabellenüberschrift für "Alle auswählen"
2. Oder wähle einzelne Einträge über die Checkboxen
3. Bei Impulsen: Button **"Ausgewählte löschen"** erscheint
4. Bei Kommentaren/Chat: Button **"Ausgewählte löschen"** ist immer sichtbar
5. Bestätige die Sicherheitsabfrage

### Medien-Upload

1. Klicke auf **"Durchsuchen"** beim Medien-Feld
2. Wähle eine oder mehrere Dateien
3. Unterstützte Formate: Bilder (JPG, PNG, GIF, WebP), Videos, Audio
4. Bei Bearbeitung: Neue Dateien werden hinzugefügt, alte bleiben erhalten

### Medien entfernen (beim Bearbeiten)

1. Öffne den Bearbeitungsmodus
2. Bei "Aktuelle Dateien" siehst du alle vorhandenen Medien
3. Klicke auf **"🗑️ Entfernen"** unter der gewünschten Datei
4. Die Datei wird ausgegraut und mit Haken markiert
5. Beim Speichern wird sie entfernt

### Medien anzeigen

- **Bilder**: Klicke auf die Miniaturansicht
- Ein Modal öffnet sich mit dem Bild in voller Größe
- Schließe mit dem **×** oder Klick außerhalb

### QR-Code generieren (nur Quests)

1. Klicke bei einem Quest auf **"QR"**
2. Der QR-Code wird generiert und angezeigt
3. Klicke auf **"Herunterladen"**, um ihn zu speichern
4. Dateiname: `quest_qr.png`

### Datum und Zeit

#### Impulse - Datum

- Das "Datum"-Feld speichert das Veröffentlichungsdatum
- Es wird automatisch als 12:00 Uhr Berliner Zeit gespeichert
- In der Tabelle wird der Wochentag als Badge angezeigt (Mo, Di, Mi, etc.)

#### Events - Start und Ende

1. Wähle zuerst das **Datum** im "Datum"-Feld
2. Gib dann die **Startzeit** ein (z.B. 14:00)
3. Gib die **Endzeit** ein (z.B. 16:00)
4. Datum und Zeiten werden automatisch kombiniert
5. In der Tabelle werden nur die Uhrzeiten angezeigt

---

## Design-Einstellungen

### Theme ändern

1. Klicke oben rechts auf **"Design"**
2. Wähle zwischen **Dunkel** oder **Hell**
3. Klicke auf **"Übernehmen"**
4. Die Einstellung wird im Browser gespeichert

### Akzentfarbe ändern

1. Klicke oben rechts auf **"Design"**
2. Wähle eine Farbe im Farbwähler
3. Klicke auf **"Übernehmen"**
4. Die Akzentfarbe wird auf Buttons und Links angewendet
5. Die Einstellung wird im Browser gespeichert

---

## Tipps und Tricks

### Performance

- Bei vielen Einträgen: Nutze die Suchfunktion zum Filtern
- Gruppierung hilft bei der Übersicht großer Datenmengen

### Medien

- Vor dem Upload: Benenne Dateien sinnvoll (werden so gespeichert)
- Bei vielen Medien: Nutze die ZIP-Download-Funktion
- Mediendateien werden nicht in der CSV exportiert

### CSV Import/Export

- Exportiere vor Änderungen als Backup
- Prüfe CSV-Dateien in Excel/LibreOffice vor dem Import
- IDs in der CSV ermöglichen Updates statt Neuanlage

### Gruppen

- Editoren sehen nur ihre zugewiesenen Gruppen
- Ohne Gruppenzuweisung: Alle Gruppen sichtbar

### Berechtigungen

- "Nur-Ansicht" Collections können nicht bearbeitet werden
- Löschen von Kommentaren/Chat-Nachrichten ist trotz "Nur-Ansicht" möglich

---

## Fehlerbehebung

### Anmeldung fehlgeschlagen

- Prüfe E-Mail und Passwort auf Tippfehler
- Groß-/Kleinschreibung beachten
- Bei Problemen: Administrator kontaktieren

### Datei-Upload fehlgeschlagen

- Prüfe Dateigröße (meist max. 50 MB pro Datei)
- Prüfe Dateiformat
- Stabiles Internet erforderlich

### CSV-Import Fehler

- Prüfe CSV-Format (UTF-8 Encoding)
- Header-Zeile erforderlich
- Feldnamen müssen exakt übereinstimmen
- Fehler werden im Browser-Log angezeigt (F12 → Console)

### Medien werden nicht angezeigt

- Prüfe Internetverbindung
- Cache leeren (Strg + F5)
- Bei dauerhaften Problemen: Administrator kontaktieren

---

## Tastenkombinationen

- **Strg + F**: Suchfeld fokussieren (im Browser)
- **Esc**: Modal-Fenster schließen
- **Tab**: Zwischen Formularfeldern wechseln
- **Enter**: Formular absenden (wenn fokussiert)

---

## Kontakt und Support

Bei Fragen oder Problemen:

- E-Mail: sstanek@ebmuc.de
- Entwickler: Simeon Stanek

**Version**: 1.2.0

---

## Datenschutz und Impressum

- [Datenschutzhinweis](https://feiafanga.de/datenschutz.html)
- [Impressum](https://feiafanga.de/impressum.html)