Cardecky — föderierte Spaced-Repetition-App des Vereins mana e.V.
Find a file
Till JS 4bb1390180
Some checks are pending
CI / validate (push) Waiting to run
db(cards): baseline migration + drizzle-tracking bootstrap script
Schließt die Ops-Lücke „kein versioniertes Schema-Tracking" aus
FEATURE_IDEAS.md.

* apps/api/src/db/migrations/0000_baseline.sql — Drizzle-generierte
  Baseline-Migration, 355 Zeilen, 25 Tabellen + 5 Enums (cards- und
  marketplace-Schema). Eingefrostet auf den Live-Stand 2026-05-12.
* apps/api/scripts/bootstrap-drizzle-tracking.ts — neues Script,
  markiert die Baseline in einer bestehenden DB als „bereits
  angewandt", ohne SQL erneut auszuführen. Verwendet sha256 wie
  drizzle-orm/migrator (Hash 312d67ba1aeb…), idempotent.
* package.json: drizzle:migrate + drizzle:bootstrap-tracking
  npm-scripts.
* docs/playbooks/DRIZZLE_MIGRATIONS_BOOTSTRAP.md — Hand-Over für
  Prod (Bootstrap einmalig, dann normaler Workflow:
  schema → generate → commit → migrate, kein push --force mehr).

Lokal verifiziert: 17/104 Tests grün, bootstrap idempotent,
drizzle-kit migrate erkennt die Baseline.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 18:53:52 +02:00
.github/workflows Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
apps db(cards): baseline migration + drizzle-tracking bootstrap script 2026-05-12 18:53:52 +02:00
docs db(cards): baseline migration + drizzle-tracking bootstrap script 2026-05-12 18:53:52 +02:00
infrastructure security(cards): fail-secure dev-stub, headers, rate-limit, dsgvo audit 2026-05-12 16:56:03 +02:00
packages/cards-domain security(cards): fail-secure dev-stub, headers, rate-limit, dsgvo audit 2026-05-12 16:56:03 +02:00
scripts feat(web): multiple-choice — explanation-Feld, Edit-Bug-Fix, State-Reset 2026-05-11 18:24:18 +02:00
.env.example Phase 5: Föderations-Endpunkte — Cards ist föderierter Peer 2026-05-08 17:10:35 +02:00
.gitignore feat(landing): Astro-Landingpage für Cardecky 2026-05-11 18:40:51 +02:00
.npmrc Phase 9d: Pre-Flight — Protocol-Mirror durch upstream ersetzt 2026-05-08 18:00:56 +02:00
.prettierrc.json Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
app-manifest.json Phase 9d: Pre-Flight — Protocol-Mirror durch upstream ersetzt 2026-05-08 18:00:56 +02:00
CLAUDE.md feat(deps): migrate Header from @mana/shared-ui@0.1.x to shared-ui-2 2026-05-09 18:27:24 +02:00
package.json feat(web): UI-Overhaul — Mobile-Nav, Sprachauswahl, 5 Sprachen, Stats-Karten 2026-05-11 14:20:01 +02:00
pnpm-lock.yaml chore: pnpm-lock.yaml nach landing-Deps-Install aktualisiert 2026-05-11 18:41:45 +02:00
pnpm-workspace.yaml Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
README.md dev: dev:full + cards-dev-Alias + lokale mana-auth-Pipeline 2026-05-09 12:38:51 +02:00
STATUS.md feat(cards): deck management UI + production auth portal wiring 2026-05-11 18:50:27 +02:00
tsconfig.base.json Phase 3 follow-up: type-check + tests grün, ts-fsrs v5 API 2026-05-08 14:41:04 +02:00
turbo.json Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00

Cards

Eigenständige Spaced-Repetition-App des Vereins mana e.V.

Cards ist eine föderierte Peer-App im mana-Ökosystem. Sie verwaltet Karteikarten, plant Wiederholungen mit dem FSRS-Algorithmus und empfängt Inhalte aus anderen Verein-Apps (z.B. Zitate aus Memoro, Notizen aus Mana, Web-Schnipsel aus dem Browser-Plugin).

→ Live (geplant): https://cardecky.mana.how

Aktueller Stand und Pickup-Onboarding: STATUS.md.

Stack

  • Frontend: SvelteKit 2 + Svelte 5 (runes-only)
  • Backend: Hono + Bun + Drizzle ORM
  • Datenbank: Postgres mit Schema-Isolation (pgSchema('cards'))
  • Auth: föderiert über mana-auth (EdDSA JWT, JWKS-Cache)
  • Subscriptions: mana-credits (zentral pro Verein-Account)
  • AI-Tools: über mana-mcp Claude Desktop / persona-runner verfügbar
  • i18n: DE / EN / FR / ES / IT
  • Build: Turborepo + pnpm 9

Status

Phase 0 (Repo-Skeleton) — siehe mana/docs/playbooks/CARDS_GREENFIELD.md für den vollständigen Plan.

Lokal entwickeln

pnpm install
pnpm dev:full           # cards docker + mana docker + DB-Push (cards & auth) + dev (cards & mana-auth)

Oder von überall via zsh-Alias: cards-dev.

dev:full greift in ../mana/ (Plattform-Repo): startet mana-postgres, pushed mana-auth-Schema, und startet mana-auth auf :3001 parallel zu cards-api/-web. Damit ist Login lokal komplett testbar (Cookie-Domain localhost, eigener Dev-User in lokaler mana_auth-DB).

Einzelschritte (falls nur Teile gebraucht werden):

pnpm docker:up          # Cards Postgres + MinIO (wartet bis healthy)
pnpm docker:up:auth     # Mana Postgres (wartet bis healthy)
pnpm db:push            # Cards Drizzle-Schema
pnpm db:push:auth       # mana-auth Drizzle-Schema
pnpm dev                # cards api + web parallel (Turbo)
pnpm dev:auth           # mana-auth :3001

→ API auf http://localhost:3081, Web auf http://localhost:3082 (oder Vite-Dev-Default 5173).

Voraussetzung: Mana-Plattform-Stack (mana-auth, evtl. Föderations-Services) muss lokal laufen, sonst greift Auth-Login nicht.

Lizenz

Mana-Verein-intern, MIT (siehe mana/docs/COMPLIANCE.md für Details zur Verein-Lizenzpolitik).