Zum Hauptinhalt springen
← 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

  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