managarten/apps/context/apps/mobile/Context-Readme-Database.md
Till-JS bb0e0cf5cb 🚚 feat(context): integrate context app into monorepo
Restructure the context app (formerly basetext) to follow the monorepo
pattern with proper workspace configuration.

Changes:
- Move app files to apps/context/apps/mobile/
- Rename package to @context/mobile
- Update bundle ID to com.manacore.context
- Create pnpm-workspace.yaml for project workspace
- Add dev scripts to root package.json
- Update CLAUDE.md with project documentation

The app structure is prepared for future web/backend additions.

Note: Existing TypeScript errors in the original codebase are preserved.
These should be fixed in a follow-up PR.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 15:09:04 +01:00

200 lines
7.8 KiB
Markdown

# BaseText - Text Analysis and Generation Platform
## Übersicht
BaseText ist eine Plattform zur Speicherung, Organisation, Analyse und KI-gestützten Verarbeitung von Textdokumenten. Die Plattform ermöglicht es Benutzern, Texte in "Spaces" zu organisieren, Beziehungen zwischen Dokumenten herzustellen und mithilfe von KI-Modellen Analysen und neue Texte zu generieren.
## Technologie-Stack
- **Backend**: Supabase mit PostgreSQL
- **Datenbank**: PostgreSQL mit JSONB für flexible Metadaten
- **Authentifizierung**: Supabase Auth
- **KI-Integration**: Offen für verschiedene KI-Modelle zur Text-Analyse und -Generierung
## Datenbankstruktur
Die Datenbank besteht aus drei Haupttabellen in einer vereinfachten Struktur:
### 1. `users`
Speichert Benutzerinformationen.
| Spalte | Typ | Beschreibung |
| ---------- | --------- | ------------------------------------------- |
| id | UUID | Primärschlüssel (Referenz zu auth.users.id) |
| email | TEXT | E-Mail-Adresse (eindeutig) |
| name | TEXT | Name des Benutzers |
| created_at | TIMESTAMP | Erstellungszeitpunkt |
### 2. `spaces`
Organisatorische Einheiten zur Gruppierung von Dokumenten.
| Spalte | Typ | Beschreibung |
| ----------- | --------- | ------------------------------------------------ |
| id | UUID | Primärschlüssel |
| name | TEXT | Name des Space |
| description | TEXT | Beschreibung des Space |
| user_id | UUID | Besitzer des Space (Referenz zu users.id) |
| created_at | TIMESTAMP | Erstellungszeitpunkt |
| settings | JSONB | Konfigurationen und Einstellungen |
| pinned | BOOLEAN | Flag, ob der Space angepinnt ist (default: true) |
### 3. `documents`
Zentrale Tabelle für alle Arten von Textinhalten.
| Spalte | Typ | Beschreibung |
| ---------- | --------- | --------------------------------------------------------- |
| id | UUID | Primärschlüssel |
| title | TEXT | Titel des Dokuments |
| content | TEXT | Textinhalt |
| type | TEXT | Dokumenttyp (text, context, prompt) |
| space_id | UUID | Space, zu dem das Dokument gehört (Referenz zu spaces.id) |
| user_id | UUID | Ersteller des Dokuments (Referenz zu users.id) |
| created_at | TIMESTAMP | Erstellungszeitpunkt |
| updated_at | TIMESTAMP | Zeitpunkt der letzten Aktualisierung |
| metadata | JSONB | Flexible Metadaten |
| pinned | BOOLEAN | Flag, ob das Dokument angepinnt ist (default: false) |
Die `metadata` kann folgende Informationen enthalten:
- author: Autor des Originaltexts
- language: Sprache des Texts
- source: Quelle des Texts
- word_count: Wortanzahl
- tags: Schlagworte/Tags
- summary: Zusammenfassung
- parent_documents: Referenzen zu Quelldokumenten (für Analyse und generierte Dokumente)
- model_used: Verwendetes KI-Modell (für generierte Dokumente)
- prompt_used: Verwendeter Prompt (für generierte Dokumente)
## Berechtigungskonzept
Das Berechtigungskonzept wird über Row Level Security (RLS) in Supabase implementiert:
1. **Benutzer**:
- Können nur ihre eigenen Daten sehen und bearbeiten
2. **Spaces**:
- Benutzer können nur ihre eigenen Spaces sehen und bearbeiten
3. **Dokumente**:
- Benutzer können nur ihre eigenen Dokumente oder Dokumente in ihren eigenen Spaces sehen und bearbeiten
## Dokumenttypen
Die Plattform unterscheidet zwischen drei Arten von Dokumenten:
1. **Text (`type = 'text'`)**:
- Importierte oder manuell erstellte Texte
- Dienen als Ausgangspunkt für KI-Generierungen
- Können beliebige Textinhalte enthalten
2. **Kontext (`type = 'context'`)**:
- Textinhalte, die als Kontext für KI-Anfragen dienen
- Können in einem oder mehreren Spaces verwendet werden
- Enthalten Referenzmaterial, Hintergrundinformationen oder andere Texte, die für KI-Anfragen relevant sind
3. **Prompt (`type = 'prompt'`)**:
- Spezielle Prompts für KI-Modelle
- Können als Vorlagen für wiederkehrende KI-Anfragen verwendet werden
- Enthalten strukturierte Anweisungen für KI-Modelle
## Versionierung
Dokumente können versioniert werden:
- Die aktuelle Version wird im `version`-Feld gespeichert
- Der Versionsverlauf wird im `metadata`-Feld unter `version_history` gespeichert
## Space-Konzept
Spaces ermöglichen es Benutzern:
- Dokumente thematisch zu organisieren
- Dokumente in logischen Gruppen zu strukturieren
- Analysen auf Dokumenten innerhalb eines Space durchzuführen
## Typische Workflows
### 1. Dokumente importieren und organisieren
1. Benutzer erstellt einen neuen Space
2. Benutzer lädt Dokumente hoch oder erstellt sie manuell (`type = 'original'`)
3. Dokumente werden dem Space zugeordnet
4. Benutzer kann Metadaten hinzufügen (Autor, Tags, etc.)
### 2. Analyse durchführen
1. Benutzer wählt einen oder mehrere Dokumente in einem Space aus
2. Benutzer konfiguriert die gewünschte Analyse
3. System führt die Analyse mit einem KI-Modell durch
4. Ergebnis wird als neues Dokument (`type = 'analysis'`) gespeichert
5. Das Analysedokument referenziert die Quelldokumente
### 3. Text generieren
1. Benutzer wählt ein oder mehrere Dokumente als Kontext aus
2. Benutzer gibt einen Prompt für die Textgenerierung ein
3. System generiert den Text mit einem KI-Modell
4. Ergebnis wird als neues Dokument (`type = 'generated'`) gespeichert
5. Das generierte Dokument referenziert die Quelldokumente
## Erweiterungsmöglichkeiten
1. **Verbesserte Textanalyse**:
- Integration weiterer KI-Modelle
- Spezifische Analyse-Templates (Sentiment, Themenextraktion, etc.)
2. **Visualisierungen**:
- Visualisierung von Beziehungen zwischen Dokumenten
- Visualisierung von Analyseergebnissen
3. **Export/Import**:
- Exportieren von Dokumenten in verschiedene Formate
- Bulk-Import von Dokumenten
4. **Automatisierte Workflows**:
- Zeitgesteuerte Analysen
- Automatisierte Verarbeitung neuer Dokumente
5. **Erweiterte Suche**:
- Volltext-Suche über alle Dokumente
- Semantische Suche mit KI-Unterstützung
## Installation und Setup
1. **Supabase-Projekt erstellen**
2. **SQL-Skripte ausführen** (siehe `supabase-setup.sql`)
3. **Backend-Konfiguration**:
- Integration von KI-Diensten
## Supabase-Service
Die App verwendet einen zentralen Supabase-Service (`supabaseService.ts`), der alle Interaktionen mit der Datenbank verwaltet:
- **Benutzer-Services**: Profil abrufen und aktualisieren
- **Space-Services**: Spaces erstellen, abrufen, aktualisieren und löschen
- **Dokument-Services**: Dokumente erstellen, abrufen, aktualisieren und löschen
Dieser Service bietet eine einfache und einheitliche Schnittstelle zur Datenbank und abstrahiert die Komplexität der Supabase-API.
- Einrichtung von Speicher für große Textdokumente
4. **Frontend-Entwicklung**:
- Benutzeroberfläche für die Interaktion mit der Plattform
## API-Endpunkte
Das Backend bietet verschiedene API-Endpunkte für:
- Benutzerverwaltung
- Space-Verwaltung
- Dokumenten-CRUD
- Analyse-Erstellung und -Ausführung
- Textgenerierung
## Fazit
BaseText bietet eine flexible und leistungsfähige Plattform für die Speicherung, Organisation und KI-gestützte Analyse von Textdokumenten. Durch die Verwendung von JSONB für Metadaten ist das System äußerst anpassungsfähig und kann für verschiedene Anwendungsfälle erweitert werden.