mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 19:01:08 +02:00
docs: update local-first migration plan and CLAUDE.md to reflect 19/19 completion
- Migration plan Phase 3: updated from 8/8 to 19/19 with full app table - Added server-side logic column showing what remains per app - Listed 3 apps not migrated (ManaCore, Matrix, Playground) with reasons - CLAUDE.md: clarified 19/22 count and added "not migrated" note Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
16e0d99c5a
commit
97ef728eca
2 changed files with 37 additions and 20 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
# Local-First Architektur & Stack-Migration
|
# Local-First Architektur & Stack-Migration
|
||||||
|
|
||||||
> **Status**: 🟢 In Umsetzung (Phase 1-3 abgeschlossen)
|
> **Status**: 🟢 Phase 3 vollständig abgeschlossen (19/19 Apps migriert)
|
||||||
> **Erstellt**: 2026-03-26
|
> **Erstellt**: 2026-03-26
|
||||||
> **Zuletzt aktualisiert**: 2026-03-27
|
> **Zuletzt aktualisiert**: 2026-03-27
|
||||||
> **Autor**: Claude Code + Till Schneider
|
> **Autor**: Claude Code + Till Schneider
|
||||||
|
|
@ -313,28 +313,43 @@ apps/todo/apps/backend/ # Oder: services/todo/ (umstrukturieren?)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 3: Rollout auf alle Apps (4-6 Wochen) — 8/8 DONE 2026-03-27
|
## Phase 3: Rollout auf alle Apps — 19/19 DONE 2026-03-27
|
||||||
|
|
||||||
Reihenfolge nach Komplexität:
|
Alle Web-Apps mit CRUD-Datenmodell wurden auf Local-First migriert:
|
||||||
|
|
||||||
| App | Komplexität | Verbleibende Server-Logik |
|
| App | Collections | Server-Logik verbleibt |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| **Zitare** | Niedrig | Nur Sync |
|
| **Todo** | tasks, projects, labels, taskLabels, reminders | RRULE, Reminders (Hono/Bun) |
|
||||||
| **Calendar** | Mittel | RRULE, Google Calendar OAuth |
|
| **Zitare** | favorites, lists | Nur Sync |
|
||||||
| **Clock** | Niedrig | Nur Sync (Timer-State) |
|
| **Calendar** | calendars, events | RRULE, Google Calendar OAuth |
|
||||||
| **ManaDeck** | Mittel | Spaced Repetition Algorithmus, LLM-Integration |
|
| **Clock** | alarms, timers, worldClocks | Nur Sync |
|
||||||
| **Contacts** | Hoch | Google OAuth Import, vCard/CSV Parser, Foto-Upload |
|
| **ManaDeck** | decks, cards | Spaced Repetition, LLM |
|
||||||
| **Chat** | Hoch | LLM Streaming, Document Processing |
|
| **Contacts** | contacts | Google Import, vCard/CSV, Foto-Upload |
|
||||||
| **Picture** | Hoch | Replicate API, Webhooks, Bild-Upload |
|
| **Picture** | images, boards, boardItems, tags, imageTags | Replicate API, Upload, Explore |
|
||||||
| **Presi** | Mittel | Nur Sync + Export |
|
| **Presi** | decks, slides | Share-Links |
|
||||||
|
| **Inventar** | collections, items, locations, categories | Nur Sync |
|
||||||
|
| **NutriPhi** | meals, goals, favorites | AI-Analyse (Gemini), Recommendations |
|
||||||
|
| **Planta** | plants, plantPhotos, wateringSchedules, wateringLogs | Foto-Upload, AI-Analyse (Gemini) |
|
||||||
|
| **Storage** | files, folders, tags, fileTags | Datei-Upload/Download, Shares, Versionen |
|
||||||
|
| **Chat** | conversations, messages, templates | LLM Streaming |
|
||||||
|
| **Questions** | collections, questions, answers | Research (mana-search) |
|
||||||
|
| **Mukke** | songs, playlists, playlistSongs, projects, markers | Audio-Upload/Streaming |
|
||||||
|
| **Context** | spaces, documents | AI-Generierung (Azure/Gemini), Tokens |
|
||||||
|
| **Photos** | albums, albumItems, favorites, tags, photoTags | Fotos via mana-media |
|
||||||
|
| **SkilltTree** | skills, activities, achievements | Nur Sync |
|
||||||
|
| **CityCorners** | locations, favorites | Web-Lookup (mana-search) |
|
||||||
|
|
||||||
Pro App:
|
**Nicht migriert (kein CRUD-Datenmodell):**
|
||||||
1. `createLocalCollection()` für jede Tabelle definieren
|
- **ManaCore** — Hub/Settings-App, aggregiert andere Apps
|
||||||
2. Stores von API-Calls auf lokale Queries umbauen
|
- **Matrix** — Protocol-Client, kein eigenes Datenmodell
|
||||||
3. Guest-Seed-Daten erstellen
|
- **Playground** — Stateless LLM-Chat
|
||||||
4. NestJS-Endpoints identifizieren die Server-seitig bleiben
|
|
||||||
5. Diese nach Hono/Bun migrieren
|
Pro App wurde implementiert:
|
||||||
6. Alten NestJS-Backend entfernen
|
1. `local-store.ts` mit `createLocalStore()` und typisierten Collections
|
||||||
|
2. `guest-seed.ts` mit Onboarding-Daten für Guest-Mode
|
||||||
|
3. Layout mit `AuthGate allowGuest={true}` + `handleAuthReady()` (initialize + startSync)
|
||||||
|
4. `GuestWelcomeModal` für Erst-Besuch-Erfahrung
|
||||||
|
5. `@manacore/local-store` als Dependency
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -522,7 +522,7 @@ Logged in: App → IndexedDB → UI → SyncEngine → mana-sync (Go) → Postg
|
||||||
← WebSocket push ←
|
← WebSocket push ←
|
||||||
```
|
```
|
||||||
|
|
||||||
### Migrated Apps
|
### Migrated Apps (19/22)
|
||||||
|
|
||||||
| App | Collections | Status |
|
| App | Collections | Status |
|
||||||
|-----|------------|--------|
|
|-----|------------|--------|
|
||||||
|
|
@ -546,6 +546,8 @@ Logged in: App → IndexedDB → UI → SyncEngine → mana-sync (Go) → Postg
|
||||||
| SkilltTree | skills, activities, achievements | Done |
|
| SkilltTree | skills, activities, achievements | Done |
|
||||||
| CityCorners | locations, favorites | Done |
|
| CityCorners | locations, favorites | Done |
|
||||||
|
|
||||||
|
**Not migrated (no CRUD data model):** ManaCore (hub), Matrix (protocol client), Playground (stateless)
|
||||||
|
|
||||||
### Dev Commands (Local-First Stack)
|
### Dev Commands (Local-First Stack)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue