# Itera

Interaktive Hörspiel-App für Android auf Basis von React Native und Expo.
Das Projekt kombiniert ausgewählte Hörspiele mit einer KI-gestützten Story-Generierung
über Supabase, einen Python-Audio-Worker und Vertex AI.

## Projektüberblick

Itera ist eine mobile Anwendung zum Anhören und Generieren interaktiver Hörspielinhalte.
Im Zentrum stehen zwei Anwendungsfälle:

- vorhandene Hörspiele in der App auswählen und abspielen
- eigene KI-generierte Hörspielinhalte erzeugen und testen

Die für die Bewertung relevante Anwendung ist die Android-Version als APK.
Sie läuft eigenständig auf Android-Geräten und muss nicht über Expo Go gestartet werden.

## Aufbau der App

Die Anwendung besteht aus einer React-Native-/Expo-App als Benutzeroberfläche, einer
Supabase-Instanz für Authentifizierung, Datenhaltung und serverseitige Funktionen sowie
einem Python-Worker für die Audio- und Medienverarbeitung der generierten Inhalte.

Die Navigation in der App ist tab-basiert aufgebaut:

- `Start`: Einstieg mit Startansicht, Empfehlungen und direktem Zugang zu Hörspielen
- `Bibliothek`: zwei getrennte Bereiche für vorgenerierte Hörspiele und live generierte KI-Storys, inklusive Kategorien, Filterung und Detailansichten
- `Erstellen`: KI-Hörspiele konfigurieren und neue Generierungen anstoßen
- `Community`: Bereich für gemeinschaftsbezogene Inhalte; im aktuellen Stand nur grundlegend vorhanden

Zusätzlich gibt es eigene Ansichten außerhalb der Tab-Leiste:

- `Suche`: wird über die Bibliothek aufgerufen und bündelt die Story-Suche
- `Player`: Wiedergabeansicht für ausgewählte Hörspiele
- `Profil`: Kontoverwaltung, Spracheinstellungen und weitere App-Einstellungen

## APK installieren

Voraussetzungen:
- Android-Gerät
- APK-Datei aus dem EAS-Build
- Internetverbindung beim ersten Test

Installation:
1. APK auf das Android-Gerät kopieren oder den EAS-Download-Link auf dem Gerät öffnen.
2. APK installieren.
3. Falls Android warnt, die Installation aus dieser Quelle einmalig erlauben.
4. App starten.

Hinweise:
- Die App benötigt für Login, ausgewählte Stories und KI-Funktionen eine Internetverbindung.
- Google-Login funktioniert nur, wenn die zugehörige OAuth-Konfiguration für den gebauten Build korrekt hinterlegt ist.
- Ein Abo-Kauf via RevenueCat hängt vom konfigurierten Store-/Test-Setup ab; für die Uni-Abgabe ist das meist optional.

## Empfohlener Kurztest auf dem Gerät

1. App starten.
2. Registrieren oder einloggen.
3. Eine vorhandene Story öffnen und Playback starten.
4. Prüfen, ob Audio abgespielt wird und der Player reagiert.
5. Falls verfügbar: eine KI-Story erstellen und den Generierungsablauf testen.
6. App in den Hintergrund schicken und prüfen, ob Audio/Player stabil bleiben.

## Testaccount

Nutzername: test@test.de
Passwort: 12345678

## Bekannte Rahmenbedingungen

- Plattformfokus: Android
- Expo Go ist für den nativen Google-Login nicht ausreichend
- Für viele Kernfunktionen ist das Backend erforderlich

## Repository-Struktur

- [HoerspielApp](/Users/timpechhold/Tim%20Pechhold/Privat/KI_Tests/Coding/IM_Hoerspielgenerator/IM_H-rspielgenerator/HoerspielApp) — React-Native-/Expo-App
- [supabase](/Users/timpechhold/Tim%20Pechhold/Privat/KI_Tests/Coding/IM_Hoerspielgenerator/IM_H-rspielgenerator/supabase) — Datenbank, Edge Functions, Auth
- [pipeline](/Users/timpechhold/Tim%20Pechhold/Privat/KI_Tests/Coding/IM_Hoerspielgenerator/IM_H-rspielgenerator/pipeline) — Python-Worker für Audio-/Medienverarbeitung
- [docs](/Users/timpechhold/Tim%20Pechhold/Privat/KI_Tests/Coding/IM_Hoerspielgenerator/IM_H-rspielgenerator/docs) — Projekt-, Test- und Launch-Dokumentation

## Test-Suite

Für das Projekt existiert eine mehrstufige Test-Suite, die die wichtigsten technischen
Bestandteile der Anwendung absichert.

Die Tests decken insbesondere folgende Bereiche ab:

- App-Logik und UI-Verhalten in der React-Native-App, zum Beispiel Story-Logik, Fortschritt, Auswahlentscheidungen und Player-Steuerung
- Supabase-Edge-Functions, insbesondere Datenkonvertierung, Hilfsfunktionen und Validierungslogik
- Python-Worker für Audioverarbeitung, Chunking, Retry-Verhalten und Job-Abläufe
- Datenbanktests für Rechtekonzepte, Quotenlogik, Job-Verarbeitung und Isolation

Eine ausführlichere Beschreibung der Teststrategie und der einzelnen Testbereiche steht in
[docs/testing/README.md](/Users/timpechhold/Tim%20Pechhold/Privat/KI_Tests/Coding/IM_Hoerspielgenerator/IM_H-rspielgenerator/docs/testing/README.md:1).
