# Manacore App - Entwicklungs-Roadmap

> Erstellt am: 2024-12-05
> Status: Aktive Entwicklung

## Inhaltsverzeichnis

- [Aktueller Stand](#aktueller-stand)
- [Kritische TODOs](#kritische-todos-hohe-priorität)
- [Mittlere Priorität](#mittlere-priorität)
- [Nice-to-have](#niedrige-priorität-nice-to-have)
- [Empfohlene Reihenfolge](#empfohlene-reihenfolge)

---

## Aktueller Stand

### Vorhandene Features

| Feature        | Status | Beschreibung                                  |
| -------------- | ------ | --------------------------------------------- |
| Dashboard      | ✅     | Anpassbare Widgets, Drag & Drop               |
| Credits-System | ✅     | Übersicht, Transaktionen, Pakete, Stripe-Kauf |
| Teams          | ✅     | Team-Verwaltung                               |
| Organizations  | ✅     | Organisations-Verwaltung                      |
| Settings       | ✅     | Benutzereinstellungen                         |
| Themes         | ✅     | Theme-Auswahl                                 |
| Feedback       | ✅     | Feedback-Formular                             |
| Profil         | ✅     | Basis-Profil-Ansicht                          |
| i18n           | ✅     | 5 Sprachen (DE, EN, ES, FR, IT)               |
| Apps-Übersicht | ✅     | Alle Mana-Apps anzeigen                       |

### Dashboard-Widgets (6 Typen)

| Widget             | Status |
| ------------------ | ------ |
| Credits            | ✅     |
| Tasks Today        | ✅     |
| Calendar Events    | ✅     |
| Quick Actions      | ✅     |
| Chat Recent        | ✅     |
| Contacts Favorites | ✅     |

### API-Integrationen

| Service  | Status | Datei                          |
| -------- | ------ | ------------------------------ |
| Calendar | ✅     | `lib/api/services/calendar.ts` |
| Chat     | ✅     | `lib/api/services/chat.ts`     |
| Contacts | ✅     | `lib/api/services/contacts.ts` |
| Todo     | ✅     | `lib/api/services/todo.ts`     |
| Zitare   | ✅     | `lib/api/services/zitare.ts`   |
| Credits  | ✅     | `lib/api/credits.ts`           |

---

## Kritische TODOs (Hohe Priorität)

### 1. ✅ Stripe-Integration für Credit-Kauf (ERLEDIGT)

**Status:** Abgeschlossen am 2026-02-13

**Implementiert:**

- [x] Stripe SDK integrieren (`@stripe/mcp` v17.5.0)
- [x] `StripeService` für PaymentIntent-Erstellung
- [x] `POST /credits/purchase` Endpoint
- [x] Webhook-Handler für `payment_intent.succeeded`/`payment_intent.payment_failed`
- [x] Credit-Gutschrift nach erfolgreicher Zahlung (idempotent)
- [x] Stripe MCP Server eingerichtet (OAuth-basiert)
- [x] Test-Pakete angelegt (Starter, Basic, Pro, Ultra)

**Credit-Pakete:**

| Paket   | Credits | Preis  | Hinweis                 |
| ------- | ------- | ------ | ----------------------- |
| Starter | 100     | €1,00  | 1 Mana = 1 Cent (immer) |
| Basic   | 500     | €5,00  | Kein Mengenrabatt       |
| Pro     | 1.500   | €15,00 | Kein Mengenrabatt       |
| Ultra   | 5.000   | €50,00 | Kein Mengenrabatt       |

> **Preisregel:** 1 Mana = 1 Cent. Keine Rabatte für größere Pakete.

**Dateien:**

- `services/mana-core-auth/src/stripe/` - Stripe-Module
- `services/mana-core-auth/src/credits/credits.service.ts` - Purchase-Methoden

**Frontend (Implementiert 2026-02-13):**

- [x] Credits-Seite: Stripe Checkout Integration
- [x] Loading-States und Toast-Benachrichtigungen

**Rechnungs-PDFs:**

- [x] Stripe Invoice PDFs werden automatisch über Webhooks synchronisiert (`invoicePdfUrl`)

---

### 2. ✅ App-Config aktualisieren (ERLEDIGT)

**Status:** Bereits vollständig implementiert

**Datei:** `apps/manacore/apps/web/src/lib/config/apps.ts`

**Alle Apps konfiguriert:**

| Kategorie    | Apps                                        |
| ------------ | ------------------------------------------- |
| Core         | manacore                                    |
| AI-Powered   | chat, picture, presi, mail                  |
| Productivity | manadeck, todo, calendar, contacts, finance |
| Utility      | clock, zitare, storage, moodlit             |

Archivierte Apps (memoro, storyteller) wurden bereits entfernt.

---

### 3. ✅ Dashboard-Widgets erweitern (GRÖSSTENTEILS ERLEDIGT)

**Status:** 14 von 16 Widgets implementiert (Finance + Mail fehlen)

**Existierende Widgets (14 Typen):**

| Widget                  | App            | Status |
| ----------------------- | -------------- | ------ |
| CreditsWidget           | mana-core-auth | ✅     |
| TransactionsWidget      | mana-core-auth | ✅     |
| ReferralWidget          | mana-core-auth | ✅     |
| QuickActionsWidget      | core           | ✅     |
| TasksTodayWidget        | todo           | ✅     |
| TasksUpcomingWidget     | todo           | ✅     |
| CalendarEventsWidget    | calendar       | ✅     |
| ChatRecentWidget        | chat           | ✅     |
| ContactsFavoritesWidget | contacts       | ✅     |
| ZitareQuoteWidget       | zitare         | ✅     |
| PictureRecentWidget     | picture        | ✅     |
| ManadeckProgressWidget  | manadeck       | ✅     |
| ClockTimersWidget       | clock          | ✅     |
| StorageUsageWidget      | storage        | ✅     |

**Neue Widgets (2026-02-13):**

- [x] StorageUsageWidget - Speichernutzung und letzte Dateien

**Noch offen (Backend fehlt noch):**

- [ ] FinanceBalanceWidget (finance Backend nötig)
- [ ] MailInboxWidget (mail Backend nötig)

---

### 4. ✅ Profil-Features vervollständigen (Backend ERLEDIGT)

**Status:** Backend implementiert am 2026-02-13

**Implementierte Backend-Endpoints:**

| Endpoint                | Methode | Beschreibung                                         |
| ----------------------- | ------- | ---------------------------------------------------- |
| `/auth/profile`         | GET     | Profil-Daten abrufen                                 |
| `/auth/profile`         | POST    | Profil aktualisieren (Name, Bild)                    |
| `/auth/change-password` | POST    | Passwort ändern (mit aktuellem Passwort)             |
| `/auth/account`         | DELETE  | Konto löschen (Soft-Delete mit Passwort-Bestätigung) |

**Feature-Status:**

| Feature           | Backend | Frontend | Priorität |
| ----------------- | ------- | -------- | --------- |
| Profil bearbeiten | ✅      | ✅       | Hoch      |
| Passwort ändern   | ✅      | ✅       | Hoch      |
| Konto löschen     | ✅      | ✅       | Mittel    |
| Avatar hochladen  | ✅      | ✅       | Niedrig   |
| 2FA aktivieren    | ❌      | ❌       | Niedrig   |

**Dateien:**

- `services/mana-core-auth/src/auth/auth.controller.ts` - Endpoints
- `services/mana-core-auth/src/auth/services/better-auth.service.ts` - Service-Methoden
- `services/mana-core-auth/src/auth/dto/update-profile.dto.ts` - Profil-Update DTO
- `services/mana-core-auth/src/auth/dto/change-password.dto.ts` - Passwort-Ändern DTO
- `services/mana-core-auth/src/auth/dto/delete-account.dto.ts` - Konto-Löschen DTO

**Frontend (Implementiert 2026-02-13):**

- [x] Profil-Edit Modal erstellt (`EditProfileModal.svelte`)
- [x] Passwort-Ändern Dialog erstellt (`ChangePasswordModal.svelte`)
- [x] Konto-Löschung mit Bestätigung (`DeleteAccountModal.svelte`)

**Avatar-Upload (Implementiert 2026-02-13):**

- [x] Storage-Modul für S3/MinIO (`services/mana-core-auth/src/storage/`)
- [x] Presigned URL Endpoint: `POST /api/v1/storage/avatar/upload-url`
- [x] Direct Upload Endpoint: `POST /api/v1/storage/avatar`
- [x] `manacore-storage` Bucket konfiguriert
- [x] Frontend-Integration (EditProfileModal mit Avatar-Picker und Presigned-URL-Upload)

---

## Mittlere Priorität

### 5. Benachrichtigungen/Notifications

**Beschreibung:** Zentrales Benachrichtigungssystem für alle Apps

**Use Cases:**

- Kalender-Erinnerungen (15 min vor Termin)
- Todo-Deadlines (Heute fällig)
- Credit-Warnungen (< 10 Credits)
- Neue Chat-Nachrichten
- Manadeck (Karten zum Lernen)

**Aufgaben:**

- [ ] Notification-Service erstellen
- [ ] Push-Notification Setup (Web Push API)
- [ ] Notification-Center UI
- [ ] Einstellungen pro Notification-Typ
- [ ] Backend: Notification-Queue

**Geschätzter Aufwand:** 3-5 Tage

---

### 6. ✅ Subscription/Plan-Management (Backend ERLEDIGT)

**Status:** Backend implementiert am 2026-02-13

**Implementiert:**

- [x] DB-Schema: `subscriptions.plans`, `subscriptions.subscriptions`, `subscriptions.invoices`
- [x] `SubscriptionsService` mit Checkout, Portal, Cancel, Reactivate
- [x] `SubscriptionsController` mit REST-Endpoints
- [x] Stripe Checkout Session für Subscriptions
- [x] Stripe Customer Portal Integration (Self-Service Billing)
- [x] Webhook-Handler für Subscription/Invoice Events
- [x] Pläne angelegt (Free, Pro, Enterprise)

**Subscription-Pläne:**

| Plan       | Mana/Monat | Monatlich | Jährlich | Features                                |
| ---------- | ---------- | --------- | -------- | --------------------------------------- |
| Free       | 150        | €0        | €0       | Basis-Features, Community Support       |
| Pro        | 1.500      | €9,99     | €99,90   | Alle Features, Priority Support, API    |
| Enterprise | 10.000     | €49,99    | €499,90  | SSO, Audit Logs, SLA, Dedicated Support |

**API-Endpoints:**

```
GET  /api/v1/subscriptions/plans          # Alle Pläne
GET  /api/v1/subscriptions/current        # Aktuelles Abo
POST /api/v1/subscriptions/checkout       # Stripe Checkout starten
POST /api/v1/subscriptions/portal         # Billing Portal öffnen
POST /api/v1/subscriptions/cancel         # Kündigen
POST /api/v1/subscriptions/reactivate     # Reaktivieren
GET  /api/v1/subscriptions/invoices       # Rechnungen
```

**Frontend (Implementiert 2026-02-13):**

- [x] Plan-Übersicht Seite im Frontend (`/subscription`)
- [x] Plan-Vergleichs-UI mit monatlich/jährlich Toggle
- [x] Stripe Checkout Integration für Subscriptions
- [x] Billing Portal Integration
- [x] Rechnungsübersicht
- [x] Subscription-Plans Seed-Script erstellt (`pnpm db:seed:plans`)
- [ ] Stripe Products/Prices erstellen und ENV-Variablen setzen

---

### 7. API-Keys Verwaltung

**Beschreibung:** Für Entwickler/Power-User API-Zugang ermöglichen

**Features:**

- API-Key generieren
- Key-Liste mit Berechtigungen
- Key widerrufen
- Usage-Statistiken pro Key

**Aufgaben:**

- [ ] API-Keys Seite erstellen
- [ ] Backend: Key-Generation
- [ ] Scopes/Berechtigungen definieren
- [ ] Rate-Limiting pro Key

**Geschätzter Aufwand:** 2-3 Tage

---

### 8. ✅ Onboarding-Flow (ERLEDIGT)

**Status:** Implementiert am 2026-02-13

**Beschreibung:** Welcome-Wizard für neue Benutzer

**Implementierte Schritte:**

1. Willkommen & Kurze Einführung (WelcomeStep)
2. Profil vervollständigen - Name, Avatar (ProfileStep)
3. Apps-Übersicht - alle Mana-Apps zeigen (AppsStep)
4. Credits-System erklären (CreditsStep)
5. Fertig - Quick Actions zum Start (CompleteStep)

**Aufgaben:**

- [x] Onboarding-Store (`lib/stores/onboarding.svelte.ts`)
- [x] OnboardingWizard Komponente mit Step-Navigation
- [x] 5 Step-Komponenten (Welcome, Profile, Apps, Credits, Complete)
- [x] Progress-Tracking (LocalStorage-basiert)
- [x] Skip-Option
- [x] Integration in App-Layout (zeigt Wizard für neue User)

**Dateien:**

- `apps/manacore/apps/web/src/lib/stores/onboarding.svelte.ts`
- `apps/manacore/apps/web/src/lib/components/onboarding/OnboardingWizard.svelte`
- `apps/manacore/apps/web/src/lib/components/onboarding/steps/*.svelte`

---

## Niedrige Priorität (Nice-to-have)

### 9. Mobile App aktivieren

**Beschreibung:** Die Mobile App (`apps/mobile`) existiert, aber scheint nicht aktiv genutzt

**Status:** Expo-Projekt vorhanden, aber möglicherweise veraltet

**Aufgaben:**

- [ ] Dependencies aktualisieren
- [ ] Funktionalität mit Web-App abgleichen
- [ ] Auth-Flow testen
- [ ] App Store Submission vorbereiten

---

### 10. DSGVO-konformer Daten-Export

**Beschreibung:** Benutzer können alle ihre Daten exportieren

**Features:**

- "Meine Daten exportieren" Button
- ZIP mit allen Daten (JSON/CSV)
- Inkl. aller App-Daten
- Account-Migration zu anderer Instanz

**Aufgaben:**

- [ ] Export-Job Backend
- [ ] Download-Link per E-Mail
- [ ] Fortschrittsanzeige

---

### 11. Aktivitäts-Feed

**Beschreibung:** Übergreifende Timeline aller Aktivitäten

**Features:**

- "Was habe ich heute gemacht?"
- Filter nach App
- Zeitraum-Auswahl
- Export als Report

---

### 12. Keyboard Shortcuts

**Beschreibung:** Power-User Shortcuts

**Shortcuts:**

- `Cmd/Ctrl + K` - Quick Search/Command Palette
- `Cmd/Ctrl + 1-9` - Schnellzugriff auf Apps
- `Cmd/Ctrl + N` - Neue Aktion (kontextabhängig)

---

## Empfohlene Reihenfolge

| #   | Task                        | Aufwand  | Impact   | Status      |
| --- | --------------------------- | -------- | -------- | ----------- |
| 1   | App-Config aktualisieren    | 2-4h     | Hoch     | ✅ Erledigt |
| 2   | Stripe-Integration          | 2-3 Tage | Kritisch | ✅ Erledigt |
| 3   | Dashboard-Widgets erweitern | 1-2 Tage | Hoch     | ✅ Erledigt |
| 4   | Profil-Features             | 1-2 Tage | Mittel   | ✅ Erledigt |
| 5   | Notifications               | 3-5 Tage | Hoch     | ⏳ Offen    |
| 6   | Onboarding                  | 2-3 Tage | Mittel   | ✅ Erledigt |
| 7   | Subscription-Management     | 2-3 Tage | Mittel   | ✅ Erledigt |
| 8   | API-Keys                    | 2-3 Tage | Niedrig  | ⏳ Offen    |

---

## Quick Wins (< 1 Stunde)

Diese Tasks können schnell erledigt werden:

- [ ] Archivierte Apps aus `apps.ts` entfernen
- [ ] Deutsche Übersetzungen vervollständigen
- [ ] "Coming Soon" Badges für fehlende Features
- [ ] Loading-States verbessern
- [ ] Error-Handling mit Toast-Notifications

---

## Technische Schulden

| Issue                     | Priorität | Beschreibung                   |
| ------------------------- | --------- | ------------------------------ |
| Supabase → mana-core-auth | Hoch      | Auth-Migration abschließen     |
| Tests fehlen              | Mittel    | Unit/E2E Tests hinzufügen      |
| TypeScript strict mode    | Niedrig   | Strikte Typisierung aktivieren |
| Bundle-Size               | Niedrig   | Tree-shaking optimieren        |

---

_Zuletzt aktualisiert: 2026-02-13 (Avatar-Upload Frontend + Onboarding-Flow implementiert)_
