mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-22 00:26:42 +02:00
docs(todo,calendar): document smart duration settings
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4cee74e15d
commit
7f2b9f893b
10 changed files with 981 additions and 4 deletions
|
|
@ -0,0 +1,119 @@
|
|||
---
|
||||
title: 'Calc: Production Readiness Audit'
|
||||
description: 'Taschenrechner mit 8 Modi (Standard, Scientific, Programmer, Converter, Currency, Finance, Date, Percentage), 5 Skins, lokaler Berechnungshistorie und Formelspeicher - vollständig local-first mit Sync'
|
||||
date: 2026-03-30
|
||||
app: 'calc'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'calc', 'production-readiness', 'alpha']
|
||||
score: 45
|
||||
scores:
|
||||
backend: 5
|
||||
frontend: 65
|
||||
database: 55
|
||||
testing: 0
|
||||
deployment: 35
|
||||
documentation: 25
|
||||
security: 50
|
||||
ux: 75
|
||||
status: 'alpha'
|
||||
version: '1.0.0'
|
||||
stats:
|
||||
backendModules: 0
|
||||
webRoutes: 22
|
||||
components: 6
|
||||
dbTables: 2
|
||||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 2
|
||||
linesOfCode: 6100
|
||||
sourceFiles: 112
|
||||
sizeInMb: 0.3
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-03-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 1
|
||||
stores: 8
|
||||
maxFileLines: 262
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
Calc ist ein **feature-reicher Taschenrechner** mit 8 Berechnungsmodi, 5 visuellen Skins (HP-35, Casio fx, TI-84, Modern, Minimal) und 10 Unit-Converter-Kategorien. Voll local-first mit Dexie.js, Sync-Support und PWA. Keine Tests und keine formale Dokumentation vorhanden.
|
||||
|
||||
## Backend (5/100)
|
||||
|
||||
- Kein eigenes Backend
|
||||
- Nur Health-Check Endpoint (`GET /health`)
|
||||
- Alle Berechnungen clientseitig (sicherer Expression-Parser ohne eval())
|
||||
- Datenpersistenz über local-first/mana-sync
|
||||
- **Designentscheidung:** Kein Backend nötig - reine Client-App
|
||||
|
||||
## Frontend (65/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes
|
||||
- Tailwind CSS 4 mit shared-tailwind Theme
|
||||
- 22 Routes: Standard, Scientific, Programmer, Converter, Currency, Finance, Date, Percentage, Skins, Themes, Settings, Profile, etc.
|
||||
- 6 Komponenten (5 Calculator Skins + Loading Skeleton)
|
||||
- 8 Svelte 5 Rune Stores
|
||||
- Sicherer Math-Expression-Parser (kein eval())
|
||||
- Wissenschaftliche Konstanten (π, e, φ, √2, c, g, Avogadro, Planck)
|
||||
- i18n mit svelte-i18n (DE + EN)
|
||||
- PWA mit @vite-pwa/sveltekit
|
||||
- **Lücke:** Keine CLAUDE.md, kein Error Boundary
|
||||
|
||||
## Database (55/100)
|
||||
|
||||
- IndexedDB via Dexie.js (@manacore/local-store)
|
||||
- 2 Collections: calculations, savedFormulas
|
||||
- Live Queries für reaktive Updates
|
||||
- Sync-fähig über mana-sync
|
||||
- Guest Seed Data für Offline-First
|
||||
- **Lücke:** Keine serverseitige Datenbank (by design)
|
||||
|
||||
## Testing (0/100)
|
||||
|
||||
- Keine Unit Tests
|
||||
- Keine E2E Tests
|
||||
- Keine Mock Factories
|
||||
- Vitest nicht konfiguriert
|
||||
- **Nächster Schritt:** Expression-Parser-Tests, Converter-Tests, Skin-Rendering-Tests
|
||||
|
||||
## Security (50/100)
|
||||
|
||||
- Mana Core Auth Integration (Better Auth + EdDSA JWT)
|
||||
- Guest Mode unterstützt
|
||||
- Sicherer Expression-Parser (kein eval(), manuelles Parsing)
|
||||
- CSP Headers konfiguriert
|
||||
- **Lücke:** Kein Rate Limiting (kein Backend)
|
||||
|
||||
## Deployment (35/100)
|
||||
|
||||
- Dockerfile vorhanden (Multi-Stage, node:20-alpine, Port 5026)
|
||||
- Health Check konfiguriert
|
||||
- **Lücke:** Nicht in docker-compose.macmini.yml, nicht deployed
|
||||
|
||||
## Documentation (25/100)
|
||||
|
||||
- Keine CLAUDE.md
|
||||
- Keine README.md
|
||||
- Code gut kommentiert (Headers, Inline-Docs)
|
||||
- package.json Scripts vorhanden
|
||||
- **Nächster Schritt:** CLAUDE.md mit Architektur, Modi-Übersicht, Skin-System
|
||||
|
||||
## UX (75/100)
|
||||
|
||||
- 8 Berechnungsmodi (Standard bis Finance)
|
||||
- 5 historische Skins (HP-35 1972, Casio fx 1985, TI-84 2004, Modern, Minimal)
|
||||
- 10 Unit-Converter-Kategorien (Länge, Gewicht, Temperatur, Volumen, Fläche, etc.)
|
||||
- Berechnungshistorie mit Tags
|
||||
- Formelspeicher
|
||||
- Dark/Light Mode
|
||||
- PWA installierbar
|
||||
- **Lücke:** Keine Keyboard Shortcuts, keine Animationen
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **Tests schreiben** - Expression-Parser und Converter sind kritisch und gut testbar
|
||||
2. **CLAUDE.md erstellen** - Architektur, Modi, Skin-System dokumentieren
|
||||
3. **Docker Compose** - In docker-compose.macmini.yml aufnehmen und deployen
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
---
|
||||
title: 'CityCorners: Production Readiness Audit'
|
||||
description: 'Stadtführer für Konstanz mit Leaflet-Maps, Marker-Clustering, Nominatim-Geocoding, 11 Standort-Kategorien und Favoriten - local-first mit Sync und Docker-Deployment'
|
||||
date: 2026-03-30
|
||||
app: 'citycorners'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'citycorners', 'production-readiness', 'alpha']
|
||||
score: 48
|
||||
scores:
|
||||
backend: 5
|
||||
frontend: 60
|
||||
database: 55
|
||||
testing: 10
|
||||
deployment: 65
|
||||
documentation: 55
|
||||
security: 45
|
||||
ux: 65
|
||||
status: 'alpha'
|
||||
version: '1.0.0'
|
||||
stats:
|
||||
backendModules: 0
|
||||
webRoutes: 27
|
||||
components: 27
|
||||
dbTables: 3
|
||||
testFiles: 2
|
||||
testCount: 5
|
||||
languages: 2
|
||||
linesOfCode: 5342
|
||||
sourceFiles: 48
|
||||
sizeInMb: 0.3
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-03-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 1
|
||||
stores: 4
|
||||
maxFileLines: 300
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
CityCorners ist ein **Stadtführer** mit interaktiven Leaflet-Karten, Marker-Clustering, Nominatim-Geocoding und 11 Standort-Kategorien. Voll local-first mit Dexie.js und mana-sync. Docker-Deployment konfiguriert und in docker-compose.macmini.yml. Minimale Testabdeckung (2 Dateien).
|
||||
|
||||
## Backend (5/100)
|
||||
|
||||
- Kein eigenes Backend
|
||||
- Nur Health-Check Endpoint (`GET /health`)
|
||||
- Alle Daten über local-first/mana-sync
|
||||
- Geocoding über externes Nominatim API
|
||||
- **Designentscheidung:** Frontend-only mit Sync-Backend
|
||||
|
||||
## Frontend (60/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes
|
||||
- Tailwind CSS 4
|
||||
- Leaflet 1.9 mit Marker-Clustering
|
||||
- 27 Routes: Städte, Standorte, Karten, Favoriten, Suche, Auth, Settings
|
||||
- 4 Svelte 5 Rune Stores (auth, favorites, tags, theme)
|
||||
- 13 Library-Module (API-Helper, i18n, Dexie, Seed Data)
|
||||
- i18n mit svelte-i18n (DE + EN)
|
||||
- PWA-Manifest konfiguriert
|
||||
- **Lücke:** Keine Skeleton-Loader, begrenzte Offline-Map-Tiles
|
||||
|
||||
## Database (55/100)
|
||||
|
||||
- IndexedDB via Dexie.js (@manacore/local-store)
|
||||
- 3 Collections: cities (slug/country/name), locations (cityId/category/name), favorites (locationId)
|
||||
- Live Queries mit Dexie liveQuery
|
||||
- Sync über mana-sync WebSocket
|
||||
- Guest Seed Data (Konstanz, Zürich, Berlin)
|
||||
- **Lücke:** Keine serverseitige Datenbank (by design)
|
||||
|
||||
## Testing (10/100)
|
||||
|
||||
- 2 Testdateien (api.test.ts, help/index.test.ts)
|
||||
- Vitest 4.1 konfiguriert
|
||||
- ~5% Coverage geschätzt
|
||||
- **Lücke:** Keine Komponenten-Tests, keine E2E Tests, keine Map-Tests
|
||||
|
||||
## Security (45/100)
|
||||
|
||||
- Mana Core Auth Integration (JWT)
|
||||
- Guest Mode mit Seed Data
|
||||
- Creator-only Edit Protection
|
||||
- **Lücke:** Nicht in trustedOrigins registriert, kein Rate Limiting
|
||||
|
||||
## Deployment (65/100)
|
||||
|
||||
- Dockerfile vorhanden (Multi-Stage, node:20-alpine, Port 5022)
|
||||
- Health Check (GET /health, 30s Intervall)
|
||||
- In docker-compose.macmini.yml (128m Memory Limit)
|
||||
- Depends on: mana-auth, mana-core-sync
|
||||
- **Lücke:** Kein CI/CD, kein Error Monitoring
|
||||
|
||||
## Documentation (55/100)
|
||||
|
||||
- CLAUDE.md vorhanden (4.4 KB, umfassend)
|
||||
- Architektur, Tech Stack, Datenmodell, Routes dokumentiert
|
||||
- Features und Kategorien beschrieben
|
||||
- Docker-Config und Env Vars dokumentiert
|
||||
- **Lücke:** Keine API-Docs, kein Deployment-Guide
|
||||
|
||||
## UX (65/100)
|
||||
|
||||
- Interaktive Leaflet-Karten mit Marker-Clustering
|
||||
- 11 Standort-Kategorien (Sight, Restaurant, Café, Museum, Park, etc.)
|
||||
- Farbcodierte Marker pro Kategorie
|
||||
- Suche und Filterung nach Stadt/Standort/Kategorie
|
||||
- Favoriten (Auth-gated)
|
||||
- Dark/Light Mode
|
||||
- **Lücke:** Keine Offline-Map-Tiles, keine Routing/Navigation, keine Bilder
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **Tests erweitern** - Map-Interaktionen, Geocoding-Mock, E2E für Standort-CRUD
|
||||
2. **Offline-Maps** - Tile-Caching für echte Offline-Nutzung
|
||||
3. **Bilder** - Standortfotos über MinIO/shared-storage integrieren
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
---
|
||||
title: 'ManaVoxel: Production Readiness Audit'
|
||||
description: 'Voxel/Pixel-Spiel mit PixiJS-Engine, Behavior-System, NPC-AI, Licht/Day-Night, Sprite-Animation, Dialog-System — local-first mit umfassender Game-Engine'
|
||||
date: 2026-03-30
|
||||
app: 'manavoxel'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'manavoxel', 'production-readiness', 'alpha']
|
||||
score: 48
|
||||
scores:
|
||||
backend: 5
|
||||
frontend: 65
|
||||
database: 55
|
||||
testing: 0
|
||||
deployment: 30
|
||||
documentation: 65
|
||||
security: 30
|
||||
ux: 70
|
||||
status: 'alpha'
|
||||
version: '2.0.0'
|
||||
stats:
|
||||
backendModules: 0
|
||||
webRoutes: 3
|
||||
components: 5
|
||||
dbTables: 4
|
||||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 0
|
||||
linesOfCode: 7500
|
||||
sourceFiles: 35
|
||||
sizeInMb: 0.3
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-01-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 1
|
||||
stores: 0
|
||||
maxFileLines: 500
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
ManaVoxel ist ein **2D Top-Down Pixel-Plattform** mit vollständiger Game-Engine: PixiJS-Rendering, Behavior-System (10 Trigger, 11 Actions), NPC-AI (4 Typen mit Patrol/Chase/Attack), Licht-System mit Day/Night-Cycle, Sprite-Animation, Dialog-System und Sound. Local-first mit Dexie.js und Auto-Save. Deutlicher Sprung vom Prototype zum spielbaren Alpha.
|
||||
|
||||
## Backend (5/100)
|
||||
|
||||
- Kein eigenes Backend
|
||||
- Health-Check Endpoint (`GET /health`)
|
||||
- Alle Daten über local-first/mana-sync
|
||||
- **Designentscheidung:** Pure Client-Side SPA, Multiplayer-Protokoll definiert aber nicht implementiert
|
||||
|
||||
## Frontend (65/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes, SSR deaktiviert
|
||||
- PixiJS 8 WebGL-Engine mit Chunk-basiertem Tilemap-Rendering
|
||||
- 3 Routes: Game, Worlds, Health
|
||||
- 5 Komponenten: Inventory, PropertyPanel, TriggerEditor, SpriteEditor (mit Frame-Support), Dialog-UI
|
||||
- **Game-Engine Module (12 Dateien):**
|
||||
- game.ts, tilemap.ts, camera.ts, player.ts, input.ts
|
||||
- particles.ts (8 Presets), area-manager.ts (Portale, Floors)
|
||||
- behavior.ts (EventBus + Runtime + 11 Action-Executors)
|
||||
- audio.ts (8 synthetisierte Web Audio Sounds)
|
||||
- npc.ts (NPC-Klasse + AI + NPCManager)
|
||||
- lighting.ts (Darkness-Overlay + Day/Night Cycle)
|
||||
- dialog.ts (NPC-Dialog + Merchant-Templates)
|
||||
- PWA mit @vite-pwa/sveltekit
|
||||
- **Lücke:** Keine i18n, kein Error Tracking
|
||||
|
||||
## Database (55/100)
|
||||
|
||||
- IndexedDB via Dexie.js (@manacore/local-store)
|
||||
- 4 Collections: worlds, areas, items, inventories
|
||||
- Item-Persistenz: Sprites, Properties, Behaviors in IndexedDB
|
||||
- Inventory-Persistenz: Slot-Zuweisungen pro Player
|
||||
- Area Auto-Save: Pixel-Daten alle 10s, Entities bei Änderung
|
||||
- Guest Seed Data (Demo-Village + House)
|
||||
- **Lücke:** Keine serverseitige Datenbank
|
||||
|
||||
## Testing (0/100)
|
||||
|
||||
- Keine Tests
|
||||
- Vitest konfiguriert aber leer
|
||||
- **Nächster Schritt:** Engine-Tests (Camera, Tilemap, Behavior-Runtime, NPC-AI)
|
||||
|
||||
## Security (30/100)
|
||||
|
||||
- Auth-Dependencies deklariert
|
||||
- Guest Mode als primärer Pfad
|
||||
- Health Endpoint für Docker
|
||||
- **Lücke:** Kein Auth-Gate, keine geschützten Routes
|
||||
|
||||
## Deployment (30/100)
|
||||
|
||||
- Dockerfile vorhanden (Multi-Stage, node:20-alpine, Port 5028)
|
||||
- Health Check konfiguriert
|
||||
- Nicht in docker-compose
|
||||
- **Lücke:** Nicht deployed
|
||||
|
||||
## Documentation (65/100)
|
||||
|
||||
- CLAUDE.md sehr umfassend (Architektur, alle Systeme dokumentiert)
|
||||
- Engine-Module, Behavior-System, NPC-System, Lighting, Dialog beschrieben
|
||||
- Controls-Tabelle, Data Model, Key Patterns
|
||||
- **Lücke:** Keine README, keine API-Docs
|
||||
|
||||
## UX (70/100)
|
||||
|
||||
- **Editor:** Brush/Eraser/Fill/Pipette, Undo/Redo, NPC-Platzierung (4 Typen)
|
||||
- **Sprite-Editor:** 24-Farben-Palette, Mirror H/V, Multi-Frame Animation, Play/Stop
|
||||
- **Gameplay:** WASD-Movement, Item-Use mit Partikel/Sound/Terrain-Destruction
|
||||
- **NPCs:** 4 Typen mit AI (Patrol/Chase/Attack), HP-Bars, Kampf-System
|
||||
- **Lighting:** Emissive Materials leuchten, Interiors dunkel, Day/Night auf Streets
|
||||
- **Dialog:** NPC-Interaktion per E-Taste, Dialog-Optionen, Merchant-Grundlage
|
||||
- **Sound:** 8 synthetisierte Presets (hit, sword, explosion, heal, whoosh, pickup, break, magic)
|
||||
- **Items:** Properties wirksam (Damage, Range, Speed, Durability, Element), Behaviors programmierbar
|
||||
- 5 World-Templates, Portal-System, Floor-Switching
|
||||
- **Lücke:** Kein Tutorial, keine Minimap, kein Multiplayer
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **Tests schreiben** - Behavior-Runtime, NPC-AI, Tilemap-Export/Import
|
||||
2. **Multiplayer** - WebSocket-Server mit definierten Message-Types
|
||||
3. **Trading-UI** - Merchant-Handel mit Item-Tausch fertigstellen
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
title: 'News: Production Readiness Audit'
|
||||
description: 'AI-News-Reader mit Hono/Bun-Server, Mozilla Readability Content-Extraction, Feed-System und Artikel-Archiv - local-first mit minimaler UI'
|
||||
date: 2026-03-30
|
||||
app: 'news'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'news', 'production-readiness', 'alpha']
|
||||
score: 35
|
||||
scores:
|
||||
backend: 45
|
||||
frontend: 35
|
||||
database: 50
|
||||
testing: 0
|
||||
deployment: 15
|
||||
documentation: 50
|
||||
security: 45
|
||||
ux: 35
|
||||
status: 'alpha'
|
||||
version: '1.0.0'
|
||||
stats:
|
||||
backendModules: 3
|
||||
webRoutes: 7
|
||||
components: 1
|
||||
dbTables: 2
|
||||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 1
|
||||
linesOfCode: 1929
|
||||
sourceFiles: 38
|
||||
sizeInMb: 0.1
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-03-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 5
|
||||
stores: 1
|
||||
maxFileLines: 200
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
News ist ein **AI-News-Reader** mit Content-Extraction via Mozilla Readability, Feed-System und Artikel-Archiv. Hono/Bun-Server mit 5 Endpoints. Local-first mit 2 Dexie-Collections. Sehr schlanke Codebasis (1.929 LOC), aber minimale UI und keine Tests oder Docker-Setup.
|
||||
|
||||
## Backend (45/100)
|
||||
|
||||
- Hono/Bun Microservice (Port 3071)
|
||||
- 5 API Endpoints:
|
||||
- `GET /health` - Health Check
|
||||
- `GET /api/v1/feed` - Artikel-Feed mit Typ/Kategorie-Filter
|
||||
- `GET /api/v1/feed/:id` - Einzelner Artikel
|
||||
- `POST /api/v1/extract/preview` - URL Content-Extraction Preview
|
||||
- `POST /api/v1/extract/save` - Extract + Speichern (JWT)
|
||||
- Mozilla Readability + JSDOM für Content-Parsing
|
||||
- Auto-generierte Lesezeit (Wörter ÷ 200)
|
||||
- CORS, JWT-Middleware, Error-Handling
|
||||
- **Lücke:** Kein Caching, kein Rate Limiting
|
||||
|
||||
## Frontend (35/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes
|
||||
- Tailwind CSS 4
|
||||
- 7 Routes: Home, Feed, Saved, Login, Register, Layouts
|
||||
- 1 Custom Component (NewsLogo)
|
||||
- 1 Store (auth.svelte.ts)
|
||||
- Hardcoded German Labels
|
||||
- **Lücke:** Keine i18n-Framework, minimale UI, nur 1 Custom Component
|
||||
|
||||
## Database (50/100)
|
||||
|
||||
- IndexedDB via Dexie.js (local-first)
|
||||
- PostgreSQL über mana-sync (sync_changes)
|
||||
- 2 Collections: articles (type/sourceOrigin/isArchived/categoryId), categories (slug/order)
|
||||
- Hybrid-Modell: AI-Feed vom Server, Saved Artikel local-first
|
||||
- Guest Seed Data
|
||||
- **Lücke:** Drizzle ORM im Server deklariert aber kaum genutzt
|
||||
|
||||
## Testing (0/100)
|
||||
|
||||
- Keine Tests
|
||||
- Kein Test-Framework konfiguriert
|
||||
- **Kritisch:** Content-Extraction ist fehleranfällig und braucht Tests
|
||||
|
||||
## Security (45/100)
|
||||
|
||||
- JWT-Auth auf /api/v1/extract/save
|
||||
- Mana Core Auth Integration
|
||||
- Guest Mode unterstützt
|
||||
- **Lücke:** Public Endpoints ohne Rate Limiting, kein Input-Sanitizing bei URL-Extraction
|
||||
|
||||
## Deployment (15/100)
|
||||
|
||||
- Kein Dockerfile
|
||||
- Nicht in docker-compose
|
||||
- Nicht deployed
|
||||
- **Kritisch:** Deployment-Infrastruktur fehlt komplett
|
||||
|
||||
## Documentation (50/100)
|
||||
|
||||
- CLAUDE.md vorhanden
|
||||
- Architektur-Diagramm
|
||||
- Hono Routes dokumentiert
|
||||
- Local-first Collections beschrieben
|
||||
- Dev Commands vorhanden
|
||||
- **Lücke:** Keine README, keine API-Docs
|
||||
|
||||
## UX (35/100)
|
||||
|
||||
- Feed-Ansicht mit Typ-Filter (News, Summaries, In-Depth)
|
||||
- Kategorie-Filterung
|
||||
- Artikel speichern
|
||||
- Astro Landing Page (minimal)
|
||||
- **Lücke:** Keine Suche, kein Reader-Modus, kein Offline-Lesen, minimales Styling
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **Dockerfile erstellen** - Bun-Server + SvelteKit containerisieren
|
||||
2. **Content-Extraction testen** - Readability-Parser mit verschiedenen Websites testen
|
||||
3. **UI ausbauen** - Reader-Modus, Suche, bessere Artikel-Karten
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
---
|
||||
title: 'Playground: Production Readiness Audit'
|
||||
description: 'LLM-Playground mit Streaming-Chat, Model-Comparison (bis 4 Modelle parallel), Parameter-Tuning und Modality-Filter - pure Frontend-App ohne Datenpersistenz'
|
||||
date: 2026-03-30
|
||||
app: 'playground'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'playground', 'production-readiness', 'alpha']
|
||||
score: 38
|
||||
scores:
|
||||
backend: 10
|
||||
frontend: 60
|
||||
database: 5
|
||||
testing: 0
|
||||
deployment: 60
|
||||
documentation: 10
|
||||
security: 50
|
||||
ux: 65
|
||||
status: 'alpha'
|
||||
version: '1.0.0'
|
||||
stats:
|
||||
backendModules: 0
|
||||
webRoutes: 7
|
||||
components: 12
|
||||
dbTables: 0
|
||||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 1
|
||||
linesOfCode: 1861
|
||||
sourceFiles: 28
|
||||
sizeInMb: 0.1
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-01-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 0
|
||||
stores: 5
|
||||
maxFileLines: 205
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
Playground ist ein **LLM-Playground** zum Testen verschiedener Sprachmodelle mit Streaming-Chat, Model-Comparison (bis 4 Modelle parallel) und Parameter-Tuning. Pure Frontend-App die externe mana-llm API konsumiert. Kein eigenes Backend, keine Datenpersistenz, keine Tests, keine Dokumentation.
|
||||
|
||||
## Backend (10/100)
|
||||
|
||||
- Kein eigenes Backend
|
||||
- Konsumiert externe mana-llm API (`/v1/chat/completions`, `/v1/models`)
|
||||
- Health-Check Endpoint vorhanden
|
||||
- **Designentscheidung:** Stateless Frontend, LLM-Logik im mana-llm Service
|
||||
|
||||
## Frontend (60/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes
|
||||
- Tailwind CSS 4
|
||||
- Vite 7.1
|
||||
- 7 Routes: Playground (protected), Login, Register, Health, Layouts
|
||||
- 12 Komponenten: Header, Sidebar, ChatInput, MessageBubble, MessageList, ModelSelector, ParameterPanel, SystemPromptEditor, ModelComparisonSelector, ModelModalityFilter, ComparisonResponseCard, ComparisonMessageBubble
|
||||
- 5 Stores (auth, chat, comparison, models, settings)
|
||||
- AsyncGenerator-basiertes Streaming
|
||||
- AbortController für Stop-Funktion
|
||||
- JSON-Export für Konversationen
|
||||
- **Lücke:** Hardcoded German, keine i18n
|
||||
|
||||
## Database (5/100)
|
||||
|
||||
- Keine Datenpersistenz
|
||||
- Chat-History nur im Speicher (verloren bei Refresh)
|
||||
- Keine IndexedDB, kein localStorage
|
||||
- **Lücke:** Konversationen gehen verloren
|
||||
|
||||
## Testing (0/100)
|
||||
|
||||
- Keine Tests
|
||||
- Kein Test-Framework konfiguriert
|
||||
- **Nächster Schritt:** Streaming-Parser, Model-Comparison-Logik testen
|
||||
|
||||
## Security (50/100)
|
||||
|
||||
- Mana Core Auth Integration (Better Auth + JWT)
|
||||
- Protected Routes mit Auth Guard
|
||||
- Passkey + 2FA Support
|
||||
- CORS-aware URL Handling
|
||||
- **Lücke:** Kein Rate Limiting (LLM API ist teuer)
|
||||
|
||||
## Deployment (60/100)
|
||||
|
||||
- Dockerfile vorhanden (Multi-Stage, node:20-alpine, Port 5026)
|
||||
- Health Check konfiguriert
|
||||
- In docker-compose.macmini.yml (llm-playground)
|
||||
- **Lücke:** Kein CI/CD, kein Error Monitoring
|
||||
|
||||
## Documentation (10/100)
|
||||
|
||||
- Keine CLAUDE.md
|
||||
- Keine README.md
|
||||
- Keine API-Docs
|
||||
- **Kritisch:** Keine Dokumentation vorhanden
|
||||
|
||||
## UX (65/100)
|
||||
|
||||
- Streaming-Chat mit Echtzeit-Ausgabe
|
||||
- Model-Comparison: bis 4 Modelle parallel
|
||||
- Echtzeit-Metriken: Tokens/Sekunde, Dauer, Token-Counts
|
||||
- Parameter-Panel: Temperature, Max Tokens, Top-P
|
||||
- System Prompt Editor
|
||||
- Modality-Filter (Text, Vision, Code)
|
||||
- Loading States und Animationen
|
||||
- JSON-Export
|
||||
- **Lücke:** Keine Konversations-Persistenz, kein Prompt-Templates, kein Sharing
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **CLAUDE.md erstellen** - API-Integration, Model-Config, Deployment dokumentieren
|
||||
2. **Konversations-Persistenz** - IndexedDB/Dexie für Chat-History
|
||||
3. **Prompt-Templates** - Vordefinierte System-Prompts für verschiedene Anwendungsfälle
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
---
|
||||
title: 'Taktik: Production Readiness Audit'
|
||||
description: 'Zeiterfassung mit Live-Timer, Projekten, Kunden, Reports, CSV-Export, Templates und Abrechnungsraten - local-first mit umfassender Dokumentation und solider Testabdeckung'
|
||||
date: 2026-03-30
|
||||
app: 'taktik'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'taktik', 'production-readiness', 'beta']
|
||||
score: 55
|
||||
scores:
|
||||
backend: 5
|
||||
frontend: 70
|
||||
database: 60
|
||||
testing: 40
|
||||
deployment: 45
|
||||
documentation: 75
|
||||
security: 50
|
||||
ux: 80
|
||||
status: 'beta'
|
||||
version: '1.0.0'
|
||||
stats:
|
||||
backendModules: 0
|
||||
webRoutes: 20
|
||||
components: 8
|
||||
dbTables: 6
|
||||
testFiles: 4
|
||||
testCount: 30
|
||||
languages: 2
|
||||
linesOfCode: 5559
|
||||
sourceFiles: 45
|
||||
sizeInMb: 0.3
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-03-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 1
|
||||
stores: 6
|
||||
maxFileLines: 350
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
Taktik ist eine **vollwertige Zeiterfassung** mit Live-Timer, Projekt-/Kunden-Management, Reports mit Charts, CSV-Export und konfigurierbaren Abrechnungsraten. Local-first mit 6 Dexie-Collections, 4 Testdateien und umfassender CLAUDE.md. Feature-komplett für den Produktiveinsatz.
|
||||
|
||||
## Backend (5/100)
|
||||
|
||||
- Kein eigenes Backend
|
||||
- Nur Health-Check Endpoint (`GET /health`)
|
||||
- Alle Daten über local-first/mana-sync
|
||||
- **Designentscheidung:** Frontend-only mit Sync, geplante Guild-Integration in v2
|
||||
|
||||
## Frontend (70/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes
|
||||
- Tailwind CSS 4
|
||||
- 20 Routes: Timer, Einträge, Projekte, Kunden, Reports, Templates, Settings
|
||||
- 8 Komponenten (TimerCard, TimerIndicator, EntryItem/List/Form, QuickStart, KeyboardShortcuts, ConfirmDialog)
|
||||
- 6 Svelte 5 Rune Stores (auth, timer, view, user-settings, theme, navigation)
|
||||
- i18n mit svelte-i18n (DE + EN)
|
||||
- PWA mit Shortcuts ("Timer starten", "Neuer Eintrag")
|
||||
- 3 Keyboard Shortcuts (s=Start/Stop, n=Neuer Eintrag, Esc=Schließen)
|
||||
- **Lücke:** Keine Skeleton-Loader, keine Drag-Reorder
|
||||
|
||||
## Database (60/100)
|
||||
|
||||
- IndexedDB via Dexie.js (@manacore/local-store)
|
||||
- 6 Collections: clients, projects, timeEntries, tags, templates, settings
|
||||
- Compound-Indizes (date+projectId)
|
||||
- Live Queries mit useLiveQueryWithDefault()
|
||||
- Auto-Save alle 10 Sekunden
|
||||
- Guest Seed Data (2 Kunden, 3 Projekte, 5 Demo-Einträge)
|
||||
- **Lücke:** Keine serverseitige Validierung
|
||||
|
||||
## Testing (40/100)
|
||||
|
||||
- 4 Testdateien (~1.800 LOC):
|
||||
- queries.test.ts (Query-Logik)
|
||||
- types.test.ts (Typ-Validierung)
|
||||
- export.test.ts (CSV-Export)
|
||||
- rounding.test.ts (Rundungslogik)
|
||||
- Vitest konfiguriert
|
||||
- Kernlogik gut abgedeckt
|
||||
- **Lücke:** Keine Komponenten-Tests, keine E2E Tests
|
||||
|
||||
## Security (50/100)
|
||||
|
||||
- Mana Core Auth Integration (Better Auth + JWT)
|
||||
- Guest Mode mit AuthGate
|
||||
- Multi-User via Sync Engine
|
||||
- **Lücke:** Nicht in trustedOrigins, keine Input-Validierung (kein Backend)
|
||||
|
||||
## Deployment (45/100)
|
||||
|
||||
- Dockerfile vorhanden (Multi-Stage, node:20-alpine, Port 5027)
|
||||
- Health Check konfiguriert
|
||||
- **Lücke:** Nicht in docker-compose.macmini.yml, nicht deployed
|
||||
|
||||
## Documentation (75/100)
|
||||
|
||||
- CLAUDE.md vorhanden (8.5 KB, sehr umfassend)
|
||||
- Architektur-Diagramme (Timer-Flow, Data-Flow)
|
||||
- Feature-Liste mit Beispielen
|
||||
- Datenmodell-Schema dokumentiert
|
||||
- Projektstruktur mit Directory Tree
|
||||
- Geplante v2 Features (Guild-Integration)
|
||||
- **Lücke:** Keine API-Docs (kein Backend)
|
||||
|
||||
## UX (80/100)
|
||||
|
||||
- Live HH:MM:SS Timer mit 1s Tick
|
||||
- One-Click Start/Stop mit Keyboard Shortcut
|
||||
- Timer-Indicator in Navbar (sichtbar auf allen Seiten)
|
||||
- Quick-Start aus Templates oder letzten Einträgen
|
||||
- Inline-Expand Editing mit Auto-Save
|
||||
- Tag-Gruppierung mit Tagessummen
|
||||
- CSV-Export (Semikolon, UTF-8 BOM für Excel)
|
||||
- Farbcodierte Projektkarten mit Budget-Fortschrittsbalken
|
||||
- Reports mit Charts (Billable vs Non-Billable, Stunden pro Projekt/Tag)
|
||||
- Konfigurierbare Rundung (0/1/5/6/10/15 min, Up/Down/Nearest)
|
||||
- Mehrere Währungen (EUR, CHF, USD, GBP)
|
||||
- **Lücke:** Keine Drag-Reorder für Projekte, keine Kalenderansicht
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **Docker Compose** - In docker-compose.macmini.yml aufnehmen und deployen
|
||||
2. **E2E Tests** - Timer-Flow, Eintrag-CRUD, CSV-Export testen
|
||||
3. **Kalenderansicht** - Wochenansicht mit Zeitblöcken für bessere Übersicht
|
||||
|
|
@ -0,0 +1,132 @@
|
|||
---
|
||||
title: 'uLoad: Production Readiness Audit'
|
||||
description: 'URL-Shortener mit Hono/Bun-Server, Click-Analytics, QR-Codes, Public Profiles, UTM-Tracking und Stripe-Stubs - live auf ulo.ad mit Docker-Deployment'
|
||||
date: 2026-03-30
|
||||
app: 'uload'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'uload', 'production-readiness', 'beta']
|
||||
score: 58
|
||||
scores:
|
||||
backend: 60
|
||||
frontend: 60
|
||||
database: 60
|
||||
testing: 0
|
||||
deployment: 75
|
||||
documentation: 70
|
||||
security: 55
|
||||
ux: 65
|
||||
status: 'beta'
|
||||
version: '1.0.0'
|
||||
stats:
|
||||
backendModules: 6
|
||||
webRoutes: 16
|
||||
components: 16
|
||||
dbTables: 4
|
||||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 2
|
||||
linesOfCode: 4190
|
||||
sourceFiles: 114
|
||||
sizeInMb: 0.3
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-01-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 12
|
||||
stores: 2
|
||||
maxFileLines: 300
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
uLoad ist ein **URL-Shortener und Link-Management-Tool** mit eigenem Hono/Bun-Server, Click-Analytics (Timeline, Devices, Referrers, Countries), QR-Code-Generierung und Public User Profiles. **Live auf ulo.ad** mit Docker-Deployment auf Hetzner VPS. Keine Tests vorhanden.
|
||||
|
||||
## Backend (60/100)
|
||||
|
||||
- Hono/Bun Microservice (Port 3041)
|
||||
- 12 API Endpoints:
|
||||
- `GET /r/:code` - Redirect + Click-Tracking
|
||||
- `GET /public/u/:username` - Public User Profile
|
||||
- `GET /api/v1/analytics/:linkId` - Click-Statistiken
|
||||
- `GET /api/v1/analytics/:linkId/timeline` - Clicks über Zeit
|
||||
- `GET /api/v1/analytics/:linkId/devices` - Geräte-Breakdown
|
||||
- `GET /api/v1/analytics/:linkId/referrers` - Top-Referrer
|
||||
- `GET /api/v1/analytics/:linkId/countries` - Länder-Breakdown
|
||||
- `POST /api/v1/stripe/checkout` - Stripe Session (Stub)
|
||||
- `POST /api/v1/stripe/webhook` - Stripe Webhook (Stub)
|
||||
- `POST /api/v1/email/send-invitation` - Team-Einladung (Stub)
|
||||
- JWT-Auth auf geschützten Endpoints
|
||||
- **Lücke:** Stripe und Email sind Stubs
|
||||
|
||||
## Frontend (60/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes
|
||||
- Tailwind CSS 4
|
||||
- 16 Routes: Links, Tags, Analytics, Pricing, Settings, Public Profile, Auth
|
||||
- 2 Stores (authStore, uloadStore)
|
||||
- QR-Code-Generierung
|
||||
- UTM-Parameter-Builder
|
||||
- Bulk-Operationen
|
||||
- i18n mit svelte-i18n (DE + EN)
|
||||
- **Lücke:** Wenige Custom-Komponenten, keine Skeleton-Loader
|
||||
|
||||
## Database (60/100)
|
||||
|
||||
- IndexedDB via Dexie.js (local-first)
|
||||
- PostgreSQL via Drizzle ORM (Server)
|
||||
- 4 Collections: links, tags, folders, linkTags
|
||||
- Compound-Indizes für Performance
|
||||
- Sync über mana-sync
|
||||
- Guest Seed Data
|
||||
- **Lücke:** Keine Migrations-Docs
|
||||
|
||||
## Testing (0/100)
|
||||
|
||||
- Keine Unit Tests
|
||||
- Keine E2E Tests
|
||||
- Keine Testinfrastruktur
|
||||
- **Kritisch:** Analytics und Redirect sind geschäftskritisch und ungetestet
|
||||
|
||||
## Security (55/100)
|
||||
|
||||
- JWT-Auth auf Server-Endpoints
|
||||
- Mana Core Auth Integration
|
||||
- Guest Mode unterstützt
|
||||
- Passwort-geschützte Links
|
||||
- Max-Click-Limits und Expiration
|
||||
- CORS konfiguriert
|
||||
- **Lücke:** Rate Limiting unklar, Stripe-Webhooks nicht validiert (Stub)
|
||||
|
||||
## Deployment (75/100)
|
||||
|
||||
- 2 Dockerfiles (Web: node:20-alpine Port 5029, Server: oven/bun Port 3041)
|
||||
- In docker-compose.macmini.yml (uload-web 128m, uload-server 256m)
|
||||
- Health Checks auf beiden Services
|
||||
- **Live auf ulo.ad** (Coolify, Hetzner CX21)
|
||||
- CORS für ulo.ad und uload.mana.how
|
||||
- **Lücke:** Kein CI/CD, kein Error Monitoring
|
||||
|
||||
## Documentation (70/100)
|
||||
|
||||
- CLAUDE.md vorhanden (129 Zeilen, umfassend)
|
||||
- README.md vorhanden (152 Zeilen)
|
||||
- Deployment-Docs: DEPLOYMENT.md, LESSONS_LEARNED.md, DOMAIN_SETUP.md, COOLIFY_SETUP.md
|
||||
- Architektur, Routes, Collections dokumentiert
|
||||
- **Lücke:** Keine API-Docs für Analytics-Endpoints
|
||||
|
||||
## UX (65/100)
|
||||
|
||||
- Link-Management mit Folders und Tags
|
||||
- QR-Code-Generierung
|
||||
- Analytics-Dashboard pro Link (Timeline, Devices, Referrers, Countries)
|
||||
- Public User Profiles (`/u/[username]`)
|
||||
- Bulk-Operationen
|
||||
- Passwort-Schutz + Expiration
|
||||
- Keyboard Shortcuts (Cmd+1-4)
|
||||
- **Lücke:** Kein Link-Preview, keine Custom Short Codes
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **Tests schreiben** - Redirect-Logik, Analytics-Aggregation, Link-Validierung
|
||||
2. **Stripe integrieren** - Checkout und Webhooks fertigstellen
|
||||
3. **Error Monitoring** - GlitchTip/Sentry für Production-Tracking
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
title: 'Wisekeep: Production Readiness Audit'
|
||||
description: 'AI-Transkription mit YouTube-Pipeline (yt-dlp + Groq Whisper), Playlist-Management und Transcript-Bibliothek - Hono/Bun-Server mit local-first Web-App'
|
||||
date: 2026-03-30
|
||||
app: 'wisekeep'
|
||||
author: 'Claude Code'
|
||||
tags: ['audit', 'wisekeep', 'production-readiness', 'alpha']
|
||||
score: 32
|
||||
scores:
|
||||
backend: 40
|
||||
frontend: 30
|
||||
database: 50
|
||||
testing: 0
|
||||
deployment: 10
|
||||
documentation: 40
|
||||
security: 45
|
||||
ux: 35
|
||||
status: 'alpha'
|
||||
version: '1.0.0'
|
||||
stats:
|
||||
backendModules: 2
|
||||
webRoutes: 9
|
||||
components: 1
|
||||
dbTables: 2
|
||||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 1
|
||||
linesOfCode: 4889
|
||||
sourceFiles: 42
|
||||
sizeInMb: 0.2
|
||||
commits: 0
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-03-01'
|
||||
todoCount: 0
|
||||
apiEndpoints: 2
|
||||
stores: 1
|
||||
maxFileLines: 416
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
Wisekeep ist eine **AI-Transkriptions-App** mit YouTube-Video-Pipeline (yt-dlp → Audio-Extraction → Groq Whisper). Hono/Bun-Server mit 2 Endpoints. Local-first Web-App mit Transcript-Bibliothek und Playlist-Management. Umfangreiche Astro Landing Page mit Speaker-Profilen. Keine Tests, kein Docker.
|
||||
|
||||
## Backend (40/100)
|
||||
|
||||
- Hono/Bun Microservice (Port 3072)
|
||||
- 2 API Endpoints:
|
||||
- `GET /health` - Health Check
|
||||
- `POST /api/v1/transcribe` - YouTube-Transkription (JWT)
|
||||
- TranscribeService Pipeline: yt-dlp Download → mp3 Extraction → Groq Whisper
|
||||
- JWT-Auth via Remote JWKS
|
||||
- CORS + Error-Middleware
|
||||
- Temp-File Cleanup bei Fehlern
|
||||
- **Lücke:** Keine Batch-Verarbeitung, kein Retry, keine Queue
|
||||
|
||||
## Frontend (30/100)
|
||||
|
||||
- SvelteKit 2 + Svelte 5 Runes
|
||||
- Tailwind CSS 4
|
||||
- 9 Routes: Transcribe, Transcripts, Playlists, Login, Register, Layouts
|
||||
- 1 Custom Component (WisekeepLogo)
|
||||
- 1 Store (auth)
|
||||
- Toast-Benachrichtigungen (svelte-sonner)
|
||||
- UI hardcoded German
|
||||
- **Lücke:** Minimale UI, keine i18n, kein Player, keine Suche
|
||||
|
||||
## Database (50/100)
|
||||
|
||||
- IndexedDB via Dexie.js (local-first)
|
||||
- 2 Collections: transcripts (status/channel/isArchived/playlistId/language), playlists (category/order)
|
||||
- Guest Seed Data (2 Playlists + 1 Demo-Transcript)
|
||||
- Sync über mana-sync
|
||||
- **Lücke:** Keine serverseitige Persistenz (Transkripte nur lokal)
|
||||
|
||||
## Testing (0/100)
|
||||
|
||||
- Keine Tests
|
||||
- Kein Test-Framework konfiguriert
|
||||
- **Kritisch:** Transkriptions-Pipeline ist komplex und fehleranfällig
|
||||
|
||||
## Security (45/100)
|
||||
|
||||
- JWT-Auth via Remote JWKS (jose)
|
||||
- Mana Core Auth Integration
|
||||
- Guest Mode unterstützt
|
||||
- **Lücke:** Kein Rate Limiting (Whisper API ist teuer), keine URL-Validierung
|
||||
|
||||
## Deployment (10/100)
|
||||
|
||||
- Kein Dockerfile
|
||||
- Nicht in docker-compose
|
||||
- Nicht deployed
|
||||
- Benötigt yt-dlp als System-Dependency
|
||||
- **Kritisch:** yt-dlp muss im Container installiert sein
|
||||
|
||||
## Documentation (40/100)
|
||||
|
||||
- CLAUDE.md vorhanden (54 Zeilen)
|
||||
- Architektur-Diagramm
|
||||
- Server Routes dokumentiert
|
||||
- Prerequisites genannt (yt-dlp, GROQ_API_KEY)
|
||||
- **Lücke:** Keine README, kein Setup-Guide, keine API-Docs
|
||||
|
||||
## UX (35/100)
|
||||
|
||||
- YouTube-URL-Eingabe mit Sprach-Auswahl (de, en, fr, es)
|
||||
- Transkript-Bibliothek mit Volltextsuche
|
||||
- Archivieren/Löschen
|
||||
- Expandierbare Transkript-Vorschau
|
||||
- Playlist-Management mit Kategorien
|
||||
- Astro Landing Page mit Speaker-Profilen (Simon Sinek, Rory Sutherland)
|
||||
- **Lücke:** Kein Audio-Player, keine Timestamps, kein Export, keine Highlights
|
||||
|
||||
## Top-3 Empfehlungen
|
||||
|
||||
1. **Dockerfile erstellen** - Bun + yt-dlp im Container, Rate Limiting
|
||||
2. **Audio-Player** - Transkript mit Timestamps und synchronem Audio-Playback
|
||||
3. **Tests** - Transkriptions-Pipeline, URL-Validierung, Error-Handling testen
|
||||
Loading…
Add table
Add a link
Reference in a new issue