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>
7.8 KiB
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) |
| 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:
-
Benutzer:
- Können nur ihre eigenen Daten sehen und bearbeiten
-
Spaces:
- Benutzer können nur ihre eigenen Spaces sehen und bearbeiten
-
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:
-
Text (
type = 'text'):- Importierte oder manuell erstellte Texte
- Dienen als Ausgangspunkt für KI-Generierungen
- Können beliebige Textinhalte enthalten
-
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
-
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 unterversion_historygespeichert
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
- Benutzer erstellt einen neuen Space
- Benutzer lädt Dokumente hoch oder erstellt sie manuell (
type = 'original') - Dokumente werden dem Space zugeordnet
- Benutzer kann Metadaten hinzufügen (Autor, Tags, etc.)
2. Analyse durchführen
- Benutzer wählt einen oder mehrere Dokumente in einem Space aus
- Benutzer konfiguriert die gewünschte Analyse
- System führt die Analyse mit einem KI-Modell durch
- Ergebnis wird als neues Dokument (
type = 'analysis') gespeichert - Das Analysedokument referenziert die Quelldokumente
3. Text generieren
- Benutzer wählt ein oder mehrere Dokumente als Kontext aus
- Benutzer gibt einen Prompt für die Textgenerierung ein
- System generiert den Text mit einem KI-Modell
- Ergebnis wird als neues Dokument (
type = 'generated') gespeichert - Das generierte Dokument referenziert die Quelldokumente
Erweiterungsmöglichkeiten
-
Verbesserte Textanalyse:
- Integration weiterer KI-Modelle
- Spezifische Analyse-Templates (Sentiment, Themenextraktion, etc.)
-
Visualisierungen:
- Visualisierung von Beziehungen zwischen Dokumenten
- Visualisierung von Analyseergebnissen
-
Export/Import:
- Exportieren von Dokumenten in verschiedene Formate
- Bulk-Import von Dokumenten
-
Automatisierte Workflows:
- Zeitgesteuerte Analysen
- Automatisierte Verarbeitung neuer Dokumente
-
Erweiterte Suche:
- Volltext-Suche über alle Dokumente
- Semantische Suche mit KI-Unterstützung
Installation und Setup
- Supabase-Projekt erstellen
- SQL-Skripte ausführen (siehe
supabase-setup.sql) - 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
- 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.