A local Duolingo English Test practice app for completion-style questions.
This project started as a fork of xiaolai/type-review, which is MIT-licensed. The upstream project is intentionally focused on typing practice; this fork moves the DET work into its own product direction instead of treating it as a side route inside type.review.
The first module focuses on the DET completion question type: prompts show part of a word, and the learner completes the missing letters in context. It is built as an English practice tool for Duolingo candidates, based on the interaction style and local-first architecture of Li Xiaolai's type.review.
- Read and Complete — a short passage with several unfinished words. Type the missing letters for each word, then press Enter to check.
- Fill in the Blanks — one sentence with one unfinished word. Type the missing tail or the full word, then press Enter.
- Prefix-only format — the prompt shows the first few letters only. Every remaining letter through the end of the word is hidden as one blank per letter.
- Target-score banks — questions are grouped around DET target levels such as 105, 115, and 125. A 125 DET score roughly corresponds to IELTS 6.5.
- Weak bank — missed sentence items are saved locally so they can be retried.
The current local app still keeps the original typing-practice screens as supporting pages because the DET drills reuse the upstream project's typing feedback patterns.
pnpm install
pnpm devOpen http://localhost:5173/#/det.
The app stores practice data in the browser only. No account, server, or telemetry is required for the local version.
pnpm test
pnpm typecheck
pnpm lint
pnpm buildUseful focused checks:
pnpm exec vitest run src/ui/App.test.tsx src/ui/det-practice.test.ts src/ui/router.test.ts
pnpm exec tsc --noEmitBased on xiaolai/type-review, MIT License.
The original project provided the clean typing-practice interaction model, local-first architecture, SolidJS/Vite setup, and visual feedback style that this DET trainer builds on.