No description
Find a file
Sebastian Mayer 634e67c602 Feature: Community-Profil-Fundament (Handle, Bio, Sichtbarkeit) - Backend
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>
2026-05-30 11:57:24 +02:00
.claude Skills: Datenschutz-Prüfer, Security-Auditor, Datenmodell-Architekt 2026-05-29 11:51:21 +02:00
.forgejo/workflows Refactor: CI, Schema-Split, 2FA-Optimierung und Code-Hygiene 2026-05-27 23:34:39 +02:00
apps/admin Fix: ernährungsfachliche Auflagen aus der Abnahme umgesetzt 2026-05-29 11:41:41 +02:00
docker Initial commit: Hellth Hub monorepo 2026-05-27 22:15:16 +02:00
docs Doku: CLAUDE.md verschlankt, Referenz nach docs/ ausgelagert 2026-05-29 10:20:03 +02:00
packages Feature: Community-Profil-Fundament (Handle, Bio, Sichtbarkeit) - Backend 2026-05-30 11:57:24 +02:00
.env.example Refactor: CI, Schema-Split, 2FA-Optimierung und Code-Hygiene 2026-05-27 23:34:39 +02:00
.gitignore Doku: CLAUDE.md verschlankt, Referenz nach docs/ ausgelagert 2026-05-29 10:20:03 +02:00
.npmrc Initial commit: Hellth Hub monorepo 2026-05-27 22:15:16 +02:00
AGENTS.md Initial commit: Hellth Hub monorepo 2026-05-27 22:15:16 +02:00
CLAUDE.md Feature: Ziele in Einstellungen-Tab, Sportbonus-Anzeige, Profil-Fix 2026-05-29 11:12:34 +02:00
package.json Initial commit: Hellth Hub monorepo 2026-05-27 22:15:16 +02:00
pnpm-lock.yaml Initial commit: Hellth Hub monorepo 2026-05-27 22:15:16 +02:00
pnpm-workspace.yaml Initial commit: Hellth Hub monorepo 2026-05-27 22:15:16 +02:00
README.md Initial commit: Hellth Hub monorepo 2026-05-27 22:15:16 +02:00
turbo.json Refactor: CI, Schema-Split, 2FA-Optimierung und Code-Hygiene 2026-05-27 23:34:39 +02:00

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:

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