docs: readme with quickstart
This commit is contained in:
57
README.md
Normal file
57
README.md
Normal file
@@ -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.
|
||||
Reference in New Issue
Block a user