Zum Hauptinhalt springen
← Alle ManaScores
Beta 19. März 2026 von Till Schneider

Mukke: Production Readiness Audit

Musik-App mit Library/Playlist/Export, Audio-Editor, Rate Limiting, Transaktionen, DB-Indexes und 113 Tests - bereit für Beta-Deployment

Gesamtscore

Gewichteter Durchschnitt aus 8 Kategorien

80 /100

Kategorie-Scores

Backend
90
Frontend
78
Database
90
Testing
65
Deployment
85
Doku
80
Security
78
UX
60

Metriken

16.327 Lines of Code
142 Source Files
1 MB (Source)
60 Commits
1 Contributors
2026-03-17 Erster Commit
59 API Endpoints
11 Backend Module
16 Web Routes
25 Stores
10 Komponenten
7 DB Tabellen
113 Tests
6 Test Files
1 Sprachen
61 TODOs/FIXMEs
572 Max File (LOC)
audit mukke production-readiness

Zusammenfassung

Mukke ist eine feature-reiche Musik-App mit vollständigem Backend (Library, Playlists, Projects, Beats, Markers, Lyrics, Export) und einer Web-App mit Audio-Editor basierend auf wavesurfer.js. Seit dem letzten Audit: Rate Limiting, DB-Indexes, Transaktionen, Input-Validierung, JWT-Auth-Fix und 78 neue Tests hinzugefügt. Verbleibende Lücken: nur 1 Sprache, kein Web-Testing, Mobile archiviert.

Backend (90/100)

Stärken:

  • 11 Module: Song, Playlist, Project, Beat, Marker, Lyrics, Export, Library, STT, Database, Health
  • 8 Controller mit vollständigem CRUD
  • DTOs für alle Ressourcen mit class-validator (@MaxLength, @Min, @Max, @IsOptional)
  • ThrottlerModule (100 req/60s) für Rate Limiting
  • Export-Service: LRC, SRT, JSON Formate
  • S3 Presigned URLs für Uploads/Downloads
  • BPM Detection, Waveform Data
  • Transaktionen für Multi-Step-Operationen (Playlist-Reorder, Song-Delete mit S3-Cleanup)

Lücken:

  • Keine Admin-Endpoints
  • Kein globaler Error-Filter

Frontend (78/100)

Stärken:

  • 16 Routes: Dashboard, Library (Albums/Artists/Genres), Playlists, Projects, Editor, Search, Upload
  • wavesurfer.js Audio-Visualisierung
  • Svelte 5 Runes: 8 Stores (player, playlist, library, editor, etc.)
  • FullPlayer, MiniPlayer, QueuePanel Komponenten
  • Karaoke-Preview, MarkerTimeline

Lücken:

  • Nur 10 Komponenten (relativ wenige für die Komplexität)
  • Kein Error Boundary
  • Keine Skeleton Loading States

Database (90/100)

Stärken:

  • 7 Tabellen mit vollständigen Indexes auf allen Tabellen
  • Indexes auf userId, playlistId, projectId, songId für alle relevanten Tabellen
  • Composite Indexes für häufige Abfragen (userId + playlistId, etc.)
  • Proper JSONB für Metadata (waveform, tags)
  • Drizzle ORM mit Type Safety
  • Seed-Daten vorhanden

Lücken:

  • Keine Volltextsuche-Indexes
  • lyrics/lyric_lines Schema könnte optimiert werden

Testing (65/100)

Stärken:

  • 6 Service-Specs: song, playlist, library, beat, marker, project (113 Tests total)
  • Jest Config mit 80% Threshold
  • Mock Factories für alle Entities (createMockSong, createMockPlaylist, createMockBeat, createMockMarker, createMockProject)
  • Gute Abdeckung der Service-Layer-Logik

Lücken:

  • Keine Controller-Tests
  • Keine Frontend-Tests
  • Keine E2E Tests

Deployment (85/100)

Stärken:

  • Multi-Stage Dockerfiles (Backend + Web)
  • Health Checks konfiguriert
  • Entrypoint Scripts mit DB-Readiness Check
  • S3 Storage Bucket konfiguriert (MinIO)

Lücken:

  • Noch nicht in Produktion deployed
  • Kein docker-compose.macmini.yml Eintrag
  • Kein CI/CD Pipeline

Security (78/100)

Stärken:

  • JwtAuthGuard auf allen Endpoints (korrekter Import aus @manacore/shared-nestjs-auth)
  • CurrentUser Decorator
  • ParseUUIDPipe für Input Validation
  • ThrottlerModule Rate Limiting (100 req/60s)
  • Input-Validierung via DTOs (@MaxLength, @Min, @Max)
  • CORS konfiguriert

Lücken:

  • Keine GDPR-Endpoints (Admin)
  • Keine File-Size Validation im Backend

UX (60/100)

Stärken:

  • Audio-Player mit Queue, Shuffle, Repeat
  • Waveform-Editor
  • PWA Dependencies vorhanden

Lücken:

  • Nur Englisch - kein i18n konfiguriert
  • Keine Offline-Funktionalität
  • Mobile App archiviert
  • Keine Accessibility-Features dokumentiert

Top-3 Empfehlungen

  1. i18n einrichten - Mindestens DE + EN wie alle anderen Apps
  2. Production Deployment - docker-compose.macmini.yml Eintrag + CI/CD Job
  3. Frontend-Tests - Vitest für Web-App-Stores und kritische Komponenten