mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:21:09 +02:00
- Restructure chat as apps/mobile, apps/web, apps/landing, backend - Add NestJS backend for secure Azure OpenAI API calls - Remove exposed API key from mobile app (security fix) - Add shared chat-types package - Create SvelteKit web app scaffold - Create Astro landing page scaffold - Update pnpm workspace configuration - Add project-level CLAUDE.md documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2 KiB
2 KiB
Vereinfachungsplan für Chat App
Basierend auf der Codeanalyse schlage ich folgende Maßnahmen zur Vereinfachung des Projekts vor:
1. Komponenten-Konsolidierung
- Chat-Eingabefelder:
MessageInput.tsxundChatPromptInput.tsxzu einer Komponente zusammenführen - Modell-Auswahl: Die Logik aus
ModelDropdown.tsxundmodel-selection.tsxin einen gemeinsamen Service extrahieren - Nachrichten-Darstellung: Eine wiederverwendbare
MessageRenderer-Komponente für alle Nachrichten-Displaytypen erstellen
2. Code-Reduktion
- Redundante Modell-Definitionen: Gemeinsame Typendefinitionen in
types/index.tszentralisieren - API-Wrapper: XHR durch einfachen Fetch-API-Wrapper in
utils/api.tsersetzen - Error Handling: Zentrales Fehlerbehandlungssystem statt wiederholter try/catch-Blöcke
- Styling: Vollständig auf NativeWind umstellen und StyleSheet.create entfernen
3. Architektur-Optimierung
-
State Management:
- Auth-Zustand über einen zentralen Store verwalten
- Modell- und Konversationszustand aus UI-Komponenten in Services verlagern
-
Typ-System:
- Gemeinsame Schnittstellen für Modelle, Nachrichten und Konversationen
- Striktere Typprüfung für alle API-Antworten
-
Service-Layer:
- Klare Trennung zwischen UI, Datenmodell und API-Logik
- Einheitliche Fehlerrückgabe mit Typisierung
4. Dateistruktur
/app - Screens & Routing
/components - UI-Komponenten
/hooks - Gemeinsame React Hooks
/services - Business-Logik
/types - Typendefinitionen
/utils - Hilfsfunktionen
5. Performance-Optimierungen
- Virtualisierte Listen für große Nachrichtenthreads
- Optimistische UI-Updates für bessere UX
- Caching von Modellantworten zur Reduzierung von API-Aufrufen
Implementierungsreihenfolge
- Typensystem konsolidieren
- API-Wrapper erstellen
- State Management umstellen
- UI-Komponenten vereinheitlichen
- Styling standardisieren