QUICKSTART fuehrt von null zur laufenden Instanz und enthaelt die vollstaendige Nginx-Proxy-Manager-Konfiguration - inklusive der beiden Stellen, an denen es sonst klemmt: client_max_body_size fuer grosse Anleitungs-PDFs und X-Forwarded-For fuer das Rate-Limit. Die Anleitung ist bebildert. Die 16 Screenshots entstehen automatisiert mit `pnpm screenshots` gegen das Produktions-Image im Container, nicht gegen den Dev-Server: der brach unter Last reproduzierbar mit ChunkLoadError ab, und die Bilder zeigen so ohnehin genau das, was nach `docker compose up` zu sehen ist. Nebenbei behoben: in der Mehrfachauswahl verdeckte die Aktionsleiste die letzte Kachelreihe. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
58 lines
2.6 KiB
Markdown
58 lines
2.6 KiB
Markdown
# Roadmap
|
|
|
|
Legende: `[ ]` offen · `[~]` in Arbeit · `[x]` fertig
|
|
|
|
## Phase 1 - MVP (v0.1.0, abgeschlossen am 07.09.2026)
|
|
|
|
Laeuft vollstaendig im Docker-Stack.
|
|
|
|
- [x] Projekt-Scaffold (Next 15, Tailwind 4, shadcn/ui, pnpm)
|
|
- [x] Datenmodell in Drizzle, initiale Migration
|
|
- [x] Projektdokumentation (CLAUDE.md, Roadmap, Changelog, Devlog)
|
|
- [x] Auth: Registrierung des ersten Users (wird Admin), Login mit
|
|
Passwort, Passkey anlegen und damit einloggen (Conditional UI),
|
|
Passkey-Verwaltung unter "Konto", Rate-Limit auf Login
|
|
- [x] Mobile-first Layout-Shell mit Bottom-Navigation
|
|
- [x] Stammdaten: Hersteller, Themen (mit Unterthemen), Standorte
|
|
- [x] Set-Katalog: Kachelliste, Suche, Filter (Hersteller, Thema, Jahr,
|
|
Besitzstatus), Anlegen und Bearbeiten
|
|
- [x] Upload-Pipeline (PDF/JPEG/PNG/WebP, Magic-Byte-Pruefung,
|
|
serverseitige Dateinamen, Thumbnails)
|
|
- [x] Set-Detailseite: Metadaten, Bild, Anleitungen mit pdf.js-Viewer,
|
|
Fotos, Sammlungseintraege
|
|
- [x] Sammlung: Uebersicht, Filter, Statistik-Kacheln
|
|
- [x] Fehlende Sets (`/katalog?besitz=fehlt`) mit Mehrfachauswahl und
|
|
Bulk-Aktion "Zur Wunschliste hinzufuegen"
|
|
- [x] Wunschlisten: Verwaltung, Prioritaet, Sortierung, Teilen,
|
|
Ueberraschungsmodus, automatisches "erfuellt"
|
|
- [x] Oeffentliche Wunschliste `/w/[shareToken]` mit Reservierung ohne
|
|
Anmeldung und Storno-Link
|
|
- [x] Seed-Skript (3 Hersteller, 10 Sets, 4 in Sammlung, 1 Wunschliste)
|
|
- [x] Unit-Tests (Besitzstatus, Bulk-Add inkl. Dubletten, Reservierung,
|
|
Token-Erzeugung) und Playwright-Smoke-Test
|
|
- [x] Docker: Multi-Stage-Build, Compose-Stack, Healthcheck, Entrypoint
|
|
- [x] Dokumentation: README, QUICKSTART, bebilderte Anleitung,
|
|
update.sh, Nginx-Proxy-Manager-Konfiguration
|
|
|
|
## Phase 2 - Komfort (Ziel: v0.2.0)
|
|
|
|
- [ ] Rebrickable-Import: Setnummer eingeben, Metadaten und Bild
|
|
uebernehmen, Bild lokal cachen. Ohne API-Key bleibt alles manuell.
|
|
- [ ] Barcode-Scanner (EAN) per Handykamera, Suche nach EAN, bei
|
|
Unbekanntem direkt ins Formular "Neues Set"
|
|
- [ ] Fehlteile je Sammlungseintrag pflegen
|
|
- [ ] Einladungslinks durch den Admin
|
|
- [ ] Export/Import: gesamte Datenbank als JSON, Dateien als ZIP,
|
|
Sammlung zusaetzlich als CSV
|
|
- [ ] PWA: Manifest, Service Worker, Katalog offline lesbar
|
|
|
|
## Phase 3 - Nice to have (Ziel: v0.3.0)
|
|
|
|
- [ ] Mehrere Sammler mit eigener Sammlung und eigenen Wunschlisten,
|
|
gemeinsamer Katalog
|
|
- [ ] Preisbeobachtung und Wertentwicklung (manuell gepflegt,
|
|
optional BrickLink-Preisfuehrer)
|
|
- [ ] E-Mail-Erinnerung (SMTP), wenn ein Wunschlisten-Termin naeher
|
|
rueckt und Eintraege unreserviert sind
|
|
- [ ] Dublettenpruefung beim Anlegen von Sets
|