Projects / Portfolio

English Back-translation Practice

Local English learning tool · Python + SQLite + FSRS

A local English learning tool that builds a vocabulary bank from studied PDFs. Practise translating Chinese prompts back into English, receive AI feedback and review with FSRS. Includes independent writing, recorded speaking and article practice.

Features & workflow

Translate & review

Save the original answer before feedback

Write & speak

Separate practice with reviewed input

Spaced review
FSRS
Local learning ledger
SQLite
Writing practice
Task 1/2
Speaking practice
Part 1–3

Start with studied material

Import PDFs you have already studied, check definitions, sense groups and recognition issues, then confirm what is available for practice. Duplicate senses reuse their IDs and progress; unconfirmed material does not automatically become a task.

Back-translation with original answers

Write English from Chinese prompts. Original answers are saved locally before AI feedback arrives. Assisted retries and independent attempts are recorded separately, and pending assessment does not advance progress. Article practice supports paragraph-by-paragraph or full-text translation, with recoverable drafts and reviewed prompts.

Review and study planning

Due reviews take priority over new material, and FSRS schedules further review after a milestone is reached. A two-day milestone requires an unassisted, correct use of a target sense in a successful sentence on two separate study days; repeated attempts on one day do not count as multiple days.

Planning supports target dates, study days, light review, breaks and recovery. Estimates change with actual progress, while existing questions, answers and drafts remain available.

Independent writing

IELTS Task 1 and Task 2 practice preserves original drafts, gives paragraph-level feedback and supports rewriting from history with comparisons. Task 1 accepts real charts or selected PDF pages. Task achievement is assessed after chart text and data have been reviewed; otherwise feedback is limited to language.

Speaking practice

Practise Parts 1, 2 and 3 through recording, local transcription, playback and transcript review before feedback. Part 2 includes one minute of preparation and a two-minute response timer. Audio stays local; AI receives the reviewed transcript. Text-based feedback focuses on vocabulary and grammar, while pronunciation and delivery require separate assessment.

A recoverable local workflow

Vocabulary, plans, original answers, feedback and drafts are stored in a SQLite ledger. Batch tasks support resuming, retrying failures and reviewing pending records. The browser keeps a draft copy while offline. Backups package the ledger and practice materials; API keys are encrypted for the current Windows user and stored locally.

Implementation

A local Python service with a JavaScript interface, SQLite persistence, FSRS spaced review, PyMuPDF for PDFs and DeepSeek for content generation and text feedback. The program is currently maintained in a private repository.

← Explore other projects