docs: claude.md, roadmap, changelog und devlog anlegen
CLAUDE.md dokumentiert Stack, Konventionen, das vollstaendige Datenmodell und die Sicherheitsregeln. Roadmap haelt den Stand der drei Phasen fest, das Devlog die Zeiten je Arbeitsschritt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# Devlog
|
||||
|
||||
Zeiterfassung und Nachvollziehbarkeit der Entwicklung. Eine Zeile je
|
||||
abgeschlossenem Arbeitsschritt, Zeiten in `HH:mm` (Europe/Berlin).
|
||||
|
||||
## Phase 1 - MVP
|
||||
|
||||
### 2026-09-06
|
||||
|
||||
| Von | Bis | Dauer | Schritt | Ergebnis | Commit |
|
||||
|---|---|---|---|---|---|
|
||||
| 22:06 | 22:12 | 0:06 | Planung | Phase-1-Plan und Drizzle-Schema zur Freigabe vorgelegt; 5 Entscheidungsfragen geklaert (Cent statt Float, Migrator statt drizzle-kit im Image, Bilder oeffentlich / PDFs geschuetzt, Token gehasht, Branch pro Phase) | - |
|
||||
| 22:12 | 22:20 | 0:08 | Scaffold | pnpm via npm global installiert (corepack scheiterte an Rechten in `C:\Program Files\nodejs`), Next 15.5.25 + Tailwind 4 + shadcn/ui (radix-nova) mit 20 Komponenten | `0de49a9` |
|
||||
| 22:20 | 22:26 | 0:06 | Datenmodell | 19 Tabellen in Drizzle, CHECK-Constraints fuer `instruction`, `photo` und `priority`, Unique-Index `(wishlist_id, set_id)`, Migration erzeugt und angewendet, WAL verifiziert | `06268bc` |
|
||||
| 22:26 | 22:34 | 0:08 | Dokumentation | CLAUDE.md (Stack, Konventionen, Datenmodell, Sicherheitsregeln), Roadmap, Changelog, Devlog | `folgt` |
|
||||
|
||||
**Summe Phase 1 bisher: 0:28**
|
||||
|
||||
## Notizen und Entscheidungen
|
||||
|
||||
- **pnpm**: `corepack enable` scheitert auf diesem Rechner an fehlenden
|
||||
Schreibrechten in `C:\Program Files\nodejs`. Stattdessen
|
||||
`npm install -g pnpm@10`; pnpm liegt unter
|
||||
`%APPDATA%\npm\pnpm.ps1` und ist im PATH.
|
||||
- **shadcn-CLI**: Die aktuelle Version (4.21) arbeitet mit Presets
|
||||
(`-p nova`) und Base-Libraries (`-b radix`) statt der frueheren
|
||||
Style-Auswahl. Sie zieht `cn` und `radix-ui` als Pakete; `clsx` und
|
||||
`tailwind-merge` werden dadurch nicht mehr direkt gebraucht.
|
||||
- **better-auth 1.7.3**: Das Passkey-Plugin liegt nicht mehr unter
|
||||
`better-auth/plugins/passkey`, sondern im eigenen Paket
|
||||
`@better-auth/passkey` (Exports `.` und `./client`). Das erwartete
|
||||
Schema deckt sich exakt mit der Tabelle `passkey`.
|
||||
@@ -0,0 +1,57 @@
|
||||
# Roadmap
|
||||
|
||||
Legende: `[ ]` offen · `[~]` in Arbeit · `[x]` fertig
|
||||
|
||||
## Phase 1 - MVP (Ziel: v0.1.0)
|
||||
|
||||
Alles 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)
|
||||
- [ ] 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
|
||||
- [ ] Mobile-first Layout-Shell mit Bottom-Navigation
|
||||
- [ ] Stammdaten: Hersteller, Themen (mit Unterthemen), Standorte
|
||||
- [ ] Set-Katalog: Kachelliste, Suche, Filter (Hersteller, Thema, Jahr,
|
||||
Besitzstatus), Anlegen und Bearbeiten
|
||||
- [ ] Upload-Pipeline (PDF/JPEG/PNG/WebP, Magic-Byte-Pruefung,
|
||||
serverseitige Dateinamen, Thumbnails)
|
||||
- [ ] Set-Detailseite: Metadaten, Bild, Anleitungen mit pdf.js-Viewer,
|
||||
Fotos, Sammlungseintraege
|
||||
- [ ] Sammlung: Uebersicht, Filter, Statistik-Kacheln
|
||||
- [ ] Fehlende Sets (`/katalog?besitz=fehlt`) mit Mehrfachauswahl und
|
||||
Bulk-Aktion "Zur Wunschliste hinzufuegen"
|
||||
- [ ] Wunschlisten: Verwaltung, Prioritaet, Sortierung, Teilen,
|
||||
Ueberraschungsmodus, automatisches "erfuellt"
|
||||
- [ ] Oeffentliche Wunschliste `/w/[shareToken]` mit Reservierung ohne
|
||||
Anmeldung und Storno-Link
|
||||
- [ ] Seed-Skript (3 Hersteller, 10 Sets, 4 in Sammlung, 1 Wunschliste)
|
||||
- [ ] Unit-Tests (Besitzstatus, Bulk-Add inkl. Dubletten, Reservierung,
|
||||
Token-Erzeugung) und Playwright-Smoke-Test
|
||||
- [ ] Docker: Multi-Stage-Build, Compose-Stack, Healthcheck, Entrypoint
|
||||
- [ ] 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
|
||||
Reference in New Issue
Block a user