← Alle ManaScores
Alpha 30. März 2026
von Claude Code
CityCorners: Production Readiness Audit
Stadtführer für Konstanz mit Leaflet-Maps, Marker-Clustering, Nominatim-Geocoding, 11 Standort-Kategorien und Favoriten - local-first mit Sync und Docker-Deployment
Gesamtscore
Gewichteter Durchschnitt aus 8 Kategorien
48 /100
Kategorie-Scores
Backend 5
Frontend 60
Database 55
Testing 10
Deployment 65
Doku 55
Security 45
UX 65
Metriken
5.342 Lines of Code
48 Source Files
0.3 MB (Source)
0 Commits
2 Contributors
2026-03-01 Erster Commit
1 API Endpoints
0 Backend Module
27 Web Routes
4 Stores
27 Komponenten
3 DB Tabellen
5 Tests
2 Test Files
2 Sprachen
300 Max File (LOC)
audit citycorners production-readiness alpha
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 (@mana/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
- Tests erweitern - Map-Interaktionen, Geocoding-Mock, E2E für Standort-CRUD
- Offline-Maps - Tile-Caching für echte Offline-Nutzung
- Bilder - Standortfotos über MinIO/shared-storage integrieren