简体中文 · English
A Windows desktop app connecting English reading with vocabulary collection and scheduled review. The application remains XWord; this repository presents version 0.4.1.
Looking up a word is easy; keeping its context and returning to it later is harder. XWord connects the book, sentence and review record in one local workflow: read → collect → review → meet the word again in the book. This is a personal software project for English reading and vocabulary practice, with a Chinese UI.
My implementation work connects an Electron, React and TypeScript desktop product:
- EPUB/TXT reading and selectable-text PDF support, with navigation, highlights and notes.
- Offline lookup, selectable meanings, collection with original sentences and jumps back to the book.
- A 27-word notebook grid and scheduled reviews: overdue handling, retries, undo and difficult words.
- Shared local English pronunciation, optional streaming translation, local storage and Windows packaging.
The implementation demonstrates desktop/UI engineering, document parsing, explicit domain rules, cross-process validation and automated verification. These are implementation contributions; the project does not claim a new learning algorithm or measured improvement in memory retention.
- Stable reading positions: EPUB/TXT use text anchors; PDF annotations use page/text offsets and redraw from the text layer after zoom.
- Rules separated from storage: pure scheduling functions compute outcomes; the main process validates and persists them.
- Two review queues: daily work derives from saved data; session retries do not overwrite the formal review result.
- Bounded document handling: imported content becomes controlled structures; networking and file access stay in the main process.
See architecture and data flow for module relationships and storage boundaries.
The unchanged application passed 213 unit tests across 29 files and 72 real-window scenarios on Windows during publication preparation: collection, grading/undo, EPUB/PDF reading, annotations, persistence and pronunciation controls. AI/network scenarios use local mocks; pronunciation control tests do not prove audible quality. See verification and limitations.
Reading screenshot · Home screenshot
Screenshots show the running app with synthetic test data, not design mockups.
Rights: publicly viewable, all rights reserved. No open-source license or permission to use or modify the original project is granted. These commands are for the owner and separately authorized users. Read NOTICE.md before use.
Verified: Windows 11 x64, Node.js 22.23.2, npm 10.9.8, Git and PowerShell. The local core needs no Python, Rust, C++ toolchain, API key or database server. Window tests need an interactive desktop; other platforms are not verified.
git clone https://github.com/Sean-xzx/Vocabulary-Tracker-XWord.git
cd Vocabulary-Tracker-XWord
npm ci
node scripts/verify-repository.mjs
npm run devExpected: a Chinese XWord window opens on the home page with no books or words on first use. The dictionary is included, and the app initializes its database automatically.
Small example: import demo.txt from the bookshelf, open it,
click ability, choose a meaning and collect it. Expect one notebook word with a sentence/source;
the source jumps back to the book. Start today's review, reveal and grade the answer.
Expect a first-review record; restart to confirm persistence. Pronunciation requires a local English OS voice.
npm run typecheck
npm run test
npm run lint
npm run e2e
npm run buildExpected: successful checks, 72 passing window scenarios and release/XWord-Setup-0.4.1.exe.
Installers are unsigned; no byte-identical build claim is made.
Windows CI runs these and repository/resource checks.
See setup, configuration and troubleshooting for data paths, isolated tests,
optional DeepSeek setup and network requirements; resource manifest records checksums.
| Path | Role |
|---|---|
src/main/ |
Startup, IPC validation, SQLite, books, dictionary, network and encrypted keys |
src/preload/ |
Typed window.xword bridge |
src/shared/ |
API types, scheduling, dates and document/text algorithms |
src/renderer/src/ |
React features, Zustand state, common UI and pronunciation |
scripts/ |
Window tests, dictionary tools, repository and design checks |
resources/, build/ |
Dictionary/license and Windows packaging assets |
docs/, design-assets/ |
Documentation, examples, evidence and design references |
Entrypoints: main, preload, renderer. Architecture explains their collaboration.
Personal project; no release cadence or support SLA. Statistics is a placeholder. Scanned PDF/OCR, DRM books, cloud sync and automatic updates are not implemented. English voice availability varies. Live DeepSeek billing/answers and real Gutenberg downloads were not revalidated during publication; DeepSeek may charge your account. Daily backups cover the database, not books or all preferences. Existing PDF Hooks and build/runtime warnings are recorded in verification. Restrictive Windows Application Control can block local NSIS packaging. The existing dependency audit reports 12 affected entries (4 high, 8 moderate); these remain unresolved.
Report reproducible bugs through Issues, without keys, private books or learning databases. Permission requests go to Sean-xzx. Reporting bugs does not grant modification permission.
Original materials: all rights reserved; no open-source license. GitHub's platform viewing/forking rights remain applicable; public visibility cannot prevent copies. Third-party licenses remain intact, including the bundled ECDICT MIT notice. See rights, third-party sources, change history and design decisions.