mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-19 09:01:22 +02:00
refactor: restructure
monorepo with apps/ and services/ directories
This commit is contained in:
parent
25824ed0ac
commit
ff80aeec1f
4062 changed files with 2592 additions and 1278 deletions
|
|
@ -1,271 +0,0 @@
|
|||
# Picture App - MVP Projektplan
|
||||
|
||||
## 📋 Projektstatus
|
||||
|
||||
### ✅ Bereits implementiert
|
||||
- **Grundgerüst**: Expo React Native App mit TypeScript
|
||||
- **Navigation**: Tab-Navigation mit Expo Router
|
||||
- **Styling**: NativeWind (Tailwind CSS) konfiguriert
|
||||
- **State Management**: Zustand Store vorbereitet
|
||||
- **Backend**: Supabase Client konfiguriert (Umgebungsvariablen fehlen noch)
|
||||
- **Datenbank**: Vollständiges Schema mit allen Tabellen, RLS Policies und Indizes
|
||||
- **UI-Komponenten**: Button, Container, TabBarIcon, HeaderButton
|
||||
|
||||
### 🚧 Aktueller Stand
|
||||
- Basis-App läuft mit Placeholder-Screens
|
||||
- Datenbank ist vollständig aufgesetzt
|
||||
- Authentifizierung noch nicht implementiert
|
||||
- Keine Verbindung zwischen App und Datenbank
|
||||
|
||||
## 🎯 MVP-Zieldefinition
|
||||
|
||||
Ein funktionsfähiges AI-Bildgenerierungs-Tool mit folgenden Kernfunktionen:
|
||||
1. Benutzer können sich registrieren und anmelden
|
||||
2. Bilder über Texteingaben (Prompts) generieren
|
||||
3. Generierte Bilder in einer persönlichen Galerie speichern und verwalten
|
||||
4. Grundlegende Bildbearbeitung (Favoriten, Löschen, Tags)
|
||||
|
||||
## 📝 Implementierungsschritte zum MVP
|
||||
|
||||
### Phase 1: Backend-Konfiguration (1-2 Tage)
|
||||
#### 1.1 Supabase-Umgebung
|
||||
- [ ] Supabase Projekt-URL und Anon-Key in `.env` eintragen
|
||||
- [ ] Storage Bucket für Bilder erstellen
|
||||
- [ ] Edge Functions für Bildgenerierung vorbereiten
|
||||
|
||||
#### 1.2 API Integration
|
||||
- [ ] API-Key Management für Bildgenerierungs-Service (Replicate/Stability AI)
|
||||
- [ ] Sichere API-Key-Speicherung in Supabase Secrets
|
||||
|
||||
### Phase 2: Authentifizierung (2-3 Tage)
|
||||
#### 2.1 Auth-Screens
|
||||
- [ ] Login Screen erstellen
|
||||
- [ ] Registrierungs-Screen mit E-Mail/Passwort
|
||||
- [ ] Passwort-Reset Funktionalität
|
||||
- [ ] Auth-Navigation Guard implementieren
|
||||
|
||||
#### 2.2 Profilverwaltung
|
||||
- [ ] Profil-Screen mit Avatar-Upload
|
||||
- [ ] Username-Eingabe bei Erstregistrierung
|
||||
- [ ] Profile-Tabelle automatisch bei Registrierung befüllen
|
||||
|
||||
### Phase 3: Kern-Funktionalität (4-5 Tage)
|
||||
#### 3.1 Bildgenerierungs-Interface
|
||||
- [ ] Hauptscreen mit Prompt-Eingabefeld
|
||||
- [ ] Erweiterte Optionen (Negative Prompt, Style-Auswahl)
|
||||
- [ ] Parameter-Einstellungen (Größe, Steps, Guidance Scale)
|
||||
- [ ] Generierungs-Status-Anzeige (Loading, Progress)
|
||||
|
||||
#### 3.2 Bildgenerierungs-Backend
|
||||
- [ ] Supabase Edge Function für API-Calls
|
||||
- [ ] Queue-System für Generierungsanfragen
|
||||
- [ ] Fehlerbehandlung und Retry-Logik
|
||||
- [ ] Bild-Upload zu Supabase Storage nach Generierung
|
||||
|
||||
#### 3.3 Integration mit AI-Service
|
||||
- [ ] Replicate API Integration (empfohlen für MVP)
|
||||
- [ ] Modell-Auswahl (SDXL, Stable Diffusion 3)
|
||||
- [ ] Response-Handling und Bild-Download
|
||||
|
||||
### Phase 4: Galerie & Bildverwaltung (3-4 Tage)
|
||||
#### 4.1 Galerie-Screen
|
||||
- [ ] Grid-Ansicht aller generierten Bilder
|
||||
- [ ] Infinite Scrolling/Pagination
|
||||
- [ ] Filter und Sortieroptionen
|
||||
- [ ] Pull-to-Refresh
|
||||
|
||||
#### 4.2 Bild-Detailansicht
|
||||
- [ ] Vollbild-Ansicht mit Zoom
|
||||
- [ ] Anzeige der Generation-Parameter
|
||||
- [ ] Aktionen: Favorit, Löschen, Teilen, Download
|
||||
- [ ] Tag-System implementieren
|
||||
|
||||
#### 4.3 Such- und Filter-Funktionen
|
||||
- [ ] Suche nach Prompts
|
||||
- [ ] Filter nach Datum, Favoriten, Tags
|
||||
- [ ] Sortierung nach verschiedenen Kriterien
|
||||
|
||||
### Phase 5: UI/UX-Optimierung (2-3 Tage)
|
||||
#### 5.1 Design-System
|
||||
- [ ] Konsistente Farbpalette definieren
|
||||
- [ ] Dark/Light Mode Support
|
||||
- [ ] Loading States und Skeletons
|
||||
- [ ] Error States und Empty States
|
||||
|
||||
#### 5.2 Performance
|
||||
- [ ] Bildoptimierung (Thumbnails, Lazy Loading)
|
||||
- [ ] Cache-Strategie implementieren
|
||||
- [ ] Offline-Support für Galerie
|
||||
|
||||
### Phase 6: Testing & Deployment (2 Tage)
|
||||
#### 6.1 Testing
|
||||
- [ ] Manuelle Tests aller Features
|
||||
- [ ] Edge Cases und Fehlerbehandlung
|
||||
- [ ] Performance-Tests
|
||||
|
||||
#### 6.2 Deployment
|
||||
- [ ] iOS Build mit EAS
|
||||
- [ ] Android Build mit EAS
|
||||
- [ ] TestFlight/Internal Testing
|
||||
|
||||
## 🔧 Technische Implementierungsdetails
|
||||
|
||||
### Navigation-Struktur (Expo Router)
|
||||
```
|
||||
app/
|
||||
├── (auth)/
|
||||
│ ├── login.tsx
|
||||
│ ├── register.tsx
|
||||
│ └── reset-password.tsx
|
||||
├── (tabs)/
|
||||
│ ├── _layout.tsx
|
||||
│ ├── generate.tsx // Hauptscreen für Generierung
|
||||
│ ├── gallery.tsx // Galerie-Übersicht
|
||||
│ └── profile.tsx // Profil & Einstellungen
|
||||
├── image/[id].tsx // Bild-Detailansicht
|
||||
└── _layout.tsx
|
||||
```
|
||||
|
||||
### State Management (Zustand)
|
||||
```typescript
|
||||
// stores/authStore.ts
|
||||
- user
|
||||
- session
|
||||
- signIn/signOut
|
||||
|
||||
// stores/generationStore.ts
|
||||
- currentPrompt
|
||||
- generationParams
|
||||
- generationStatus
|
||||
- generatedImages
|
||||
|
||||
// stores/galleryStore.ts
|
||||
- images
|
||||
- filters
|
||||
- sortOrder
|
||||
- selectedTags
|
||||
```
|
||||
|
||||
### API-Services
|
||||
```typescript
|
||||
// services/supabase/
|
||||
├── auth.ts // Authentifizierung
|
||||
├── profiles.ts // Profilverwaltung
|
||||
├── images.ts // Bildverwaltung
|
||||
├── generation.ts // Generierungs-Logik
|
||||
└── storage.ts // File Upload/Download
|
||||
```
|
||||
|
||||
### Komponenten-Bibliothek
|
||||
```
|
||||
components/
|
||||
├── auth/
|
||||
│ ├── LoginForm.tsx
|
||||
│ └── RegisterForm.tsx
|
||||
├── generation/
|
||||
│ ├── PromptInput.tsx
|
||||
│ ├── ParameterControls.tsx
|
||||
│ └── GenerationStatus.tsx
|
||||
├── gallery/
|
||||
│ ├── ImageGrid.tsx
|
||||
│ ├── ImageCard.tsx
|
||||
│ └── FilterBar.tsx
|
||||
└── common/
|
||||
├── LoadingSpinner.tsx
|
||||
├── ErrorMessage.tsx
|
||||
└── EmptyState.tsx
|
||||
```
|
||||
|
||||
## 📊 Zeitplan
|
||||
|
||||
**Geschätzte Gesamtdauer: 14-19 Arbeitstage**
|
||||
|
||||
### Woche 1
|
||||
- Phase 1: Backend-Konfiguration
|
||||
- Phase 2: Authentifizierung
|
||||
|
||||
### Woche 2
|
||||
- Phase 3: Kern-Funktionalität (Bildgenerierung)
|
||||
|
||||
### Woche 3
|
||||
- Phase 4: Galerie & Bildverwaltung
|
||||
- Phase 5: UI/UX-Optimierung
|
||||
|
||||
### Woche 4
|
||||
- Phase 6: Testing & Deployment
|
||||
- Buffer für Bugfixes
|
||||
|
||||
## 🚀 Nächste Schritte nach MVP
|
||||
|
||||
### Version 1.1
|
||||
- Social Features (öffentliche Galerie, Likes)
|
||||
- Prompt Templates und Presets
|
||||
- Batch-Generierung
|
||||
|
||||
### Version 1.2
|
||||
- Community Features (Following, Kommentare)
|
||||
- Erweiterte Bildbearbeitung
|
||||
- Model-Training mit eigenen Bildern
|
||||
|
||||
### Version 1.3
|
||||
- Monetarisierung (Credits-System)
|
||||
- Premium-Features
|
||||
- API-Zugang für Power-User
|
||||
|
||||
## 🛠️ Entwicklungs-Prioritäten
|
||||
|
||||
1. **Kritisch für MVP**
|
||||
- Authentifizierung
|
||||
- Bildgenerierung
|
||||
- Basisspeicherung
|
||||
|
||||
2. **Wichtig für Benutzererfahrung**
|
||||
- Intuitive UI
|
||||
- Schnelle Ladezeiten
|
||||
- Fehlerbehandlung
|
||||
|
||||
3. **Nice-to-Have für MVP**
|
||||
- Tags-System
|
||||
- Erweiterte Filter
|
||||
- Share-Funktion
|
||||
|
||||
## 📌 Wichtige Entscheidungen
|
||||
|
||||
### AI-Service-Auswahl
|
||||
**Empfehlung: Replicate API**
|
||||
- Pro: Viele Modelle, Pay-per-Use, gute Dokumentation
|
||||
- Contra: Kosten bei hohem Volumen
|
||||
- Alternative: Stability AI API oder selbst gehostete Modelle
|
||||
|
||||
### Bildformat & Speicherung
|
||||
- Format: WebP für optimale Größe/Qualität
|
||||
- Thumbnails: 256x256px für Galerie
|
||||
- Original: Max 2048x2048px für MVP
|
||||
|
||||
### Authentifizierung
|
||||
- Start mit E-Mail/Passwort
|
||||
- Social Login (Google, Apple) als nächster Schritt
|
||||
|
||||
## ✅ Definition of Done für MVP
|
||||
|
||||
- [ ] Benutzer kann sich registrieren und anmelden
|
||||
- [ ] Benutzer kann Prompts eingeben und Bilder generieren
|
||||
- [ ] Generierte Bilder werden in der Galerie angezeigt
|
||||
- [ ] Benutzer kann Bilder favorisieren und löschen
|
||||
- [ ] App läuft stabil auf iOS und Android
|
||||
- [ ] Grundlegende Fehlerbehandlung implementiert
|
||||
- [ ] Basis-Performance-Optimierungen durchgeführt
|
||||
|
||||
## 🔗 Ressourcen & Dokumentation
|
||||
|
||||
- [Supabase Docs](https://supabase.com/docs)
|
||||
- [Expo Router Docs](https://docs.expo.dev/router/introduction/)
|
||||
- [Replicate API Docs](https://replicate.com/docs)
|
||||
- [NativeWind Docs](https://www.nativewind.dev/)
|
||||
- [Zustand Docs](https://github.com/pmndrs/zustand)
|
||||
|
||||
---
|
||||
|
||||
**Letztes Update:** ${new Date().toLocaleDateString('de-DE')}
|
||||
**Erstellt für:** Picture App MVP
|
||||
**Version:** 1.0.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue