From 9300af282038e7c85911b0d868178af3b74440aa Mon Sep 17 00:00:00 2001 From: Bert Hausmans Date: Wed, 20 May 2026 21:30:27 +0200 Subject: [PATCH] docs: readme with quickstart --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c04b8c1 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# Flashcard + +Single-user lokale flashcard webapplicatie met hiërarchische lessen, spaced repetition (Leitner), Excel import/export en statistieken. + +## Snelstart + +```bash +npm install +npm run db:migrate +npm run db:seed # optioneel, voegt demo data toe +npm run dev # backend op :3000, frontend op :5173 +``` + +Open http://localhost:5173. + +## Build (productie) + +```bash +npm run build +npm start # backend serveert frontend + API op :3000 +``` + +## Tests + +```bash +npm test # unit tests (backend) +npm run e2e # playwright smoke +``` + +## Excel-formaat + +Eén werkblad met header-rij. Kolommen: + +- `question` (verplicht) +- `answer` (verplicht) +- `hint` (optioneel) +- `lesson_path` (optioneel, bv. `Spaans/Begroetingen`) + +Bij import kun je kiezen of bestaande kaarten (zelfde vraag in dezelfde les) worden bijgewerkt en of onbekende lessen worden aangemaakt. + +## Architectuur + +Monorepo (npm workspaces): + +- `packages/shared` — gedeelde TypeScript types en Zod schemas +- `packages/backend` — Express 4 + Drizzle ORM + better-sqlite3 +- `packages/frontend` — React 18 + Vite + Tailwind + Zustand + Framer Motion + +## Spaced repetition + +Leitner-systeem met 5 dozen: + +- Nieuwe kaart → doos 1 (direct due) +- Goed → naar volgende doos, langer wachten (1d, 3d, 7d, 14d) +- Fout → terug naar doos 1 + +Binnen een sessie wordt een fout beantwoorde kaart na ~3 posities opnieuw getoond.