add language learner project
Some checks failed
Test and deploy staging / staging (push) Has been cancelled

Dutch and Korean (explained in English) and English (explained in Dutch)
from A1 to C1, with a Hangul level for Korean. Lessons with notes, words
and sentences generate multiple-choice, typing, sentence building, cloze,
listening and matching exercises. Endless challenges: a seeded daily
challenge, sprint, survival, mixed practice, level tests, spaced-repetition
reviews and generated drills (numbers, clock times, de/het, plurals, Dutch
and Korean conjugation, particles, Hangul reading, irregular verbs).
Progress is stored in localStorage with export/import.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-24 17:34:56 +00:00
parent afb1f191df
commit 438623d857
69 changed files with 12669 additions and 4 deletions

View File

@@ -0,0 +1,41 @@
export type ModeId = 'daily' | 'sprint' | 'survival' | 'endless' | 'review';
export type ModeInfo = {
id: ModeId;
title: string;
description: string;
group: 'challenge' | 'review';
};
export const MODES: ModeInfo[] = [
{
id: 'daily',
title: 'Daily challenge',
description: '20 questions, the same all day. Your first score counts.',
group: 'challenge'
},
{
id: 'sprint',
title: 'Sprint',
description: 'As many right answers as you can in 60 seconds.',
group: 'challenge'
},
{
id: 'survival',
title: 'Survival',
description: 'Endless and slowly harder. Three mistakes and you are out.',
group: 'challenge'
},
{
id: 'endless',
title: 'Mixed practice',
description: 'No timer, no lives. Words, grammar and drills until you stop.',
group: 'challenge'
},
{
id: 'review',
title: 'Review',
description: 'Spaced repetition: due words first, then your weakest ones.',
group: 'review'
}
];