No description
Battle.net-Style Handle Username#XXXX als Basis fuer kommende Community-Features (Stufe 2 der Roadmap). Diese Stufe: Schema, Migration, Generator und API. Die UI im Profil-Tab folgt in einem eigenen Commit. Schema (packages/db/src/schema/auth.ts): - Neue Spalten an der user-Tabelle: username, discriminator, bio (alle nullable), profileVisible (notNull, default false = Privacy-by-Default). - uniqueIndex auf (username, discriminator); NULLs distinct, greift also nur bei vollstaendigen Handles. Index user_username_idx auf username fuer die Handle-Erstvergabe-Query. - Migration 0019_community_profile, per drizzle-kit generate erzeugt, driftfrei (zweiter generate: keine Aenderung), drizzle-kit check ok. Noch nicht gegen die DB angewendet. Generator (packages/api/src/lib/handle.ts): - Discriminator aus verwechslungsarmem Alphabet, Kollisions-Retry. - formatHandle, validateUsername. 17 node:test-Unit-Tests. API (packages/api/src/trpc/routers/users.ts): - myProfile um die Felder + abgeleitetes handle erweitert (Feld-Whitelist). - setMyHandle: Discriminator stabil bei Erst-Vergabe, Kollisionspruefung inkl. DB-unique-violation-Fallback (PG 23505). - updateMyCommunityProfile: bio + Sichtbarkeit, strikt userId-gescoped. Verifiziert: Typecheck gruen (db/api/admin), 62 API-Tests gruen, drizzle-kit check ok. Datenmodell-Architekt abgenommen (Index-Auflage erfuellt). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .forgejo/workflows | ||
| apps/admin | ||
| docker | ||
| docs | ||
| packages | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| turbo.json | ||
Hellth Hub
Mobile-first Web-App für persönliches Health- und Ernährungstracking im Home-Lab.
Lokaler Start
docker compose -f docker/docker-compose.yml up -d db
pnpm --filter @hellth/db db:migrate
pnpm --filter @hellth/api seed:admin
pnpm --filter @hellth/api seed:health
pnpm --filter @hellth/api dev
pnpm --filter admin dev
Danach:
- Admin-UI: http://localhost:3001
- API: http://localhost:3002
- Health Check: http://localhost:3002/api/health
Aktuelle Module
- Auth, Login, 2FA, Passkeys und Benutzerverwaltung
- Tagesansicht mit Essen, Trinken, Gewicht, Aktivitäten und Coach-Hinweisen
- Lebensmittelkatalog mit Nährwerten, Portionen, Favoriten und OCR-Vorbereitung
- Rezepte mit flexiblen Mengenangaben, Bewertungen und Meal-Prep-Bezug
- Essensplanung mit Tages- und Wochenlogik
- Wochenbudget für Kalorien inklusive Sportbonus
- Einkaufsliste mit Märkten, Abteilungen und Laufweg-Sortierung
- Ziele, Onboarding und persönliche Einstellungen pro Benutzer
- Erinnerungen, Aktivitätspunkte, Hellfireclub und Wearable-Vorbereitung
Verifikation
pnpm --filter @hellth/api test -- --test-reporter=spec
pnpm --filter admin test
NEXT_PUBLIC_API_URL=http://localhost:3002 pnpm --filter admin build