Mandarin Garden.
Learning by building.
I’m Atif Iqbal, also known by my Chinese name 唐达仁. As I work through HSK 3, I’m building a study companion for the vocabulary, tones and grammar I want to practise.
01A tool for daily practice
Language learning needs repetition. I wanted vocabulary, grammar practice and progress in one place, so I built a desktop application and a browser edition from the same learning data.
The vocabulary uses the older HSK 2.0 inventory across levels 1–3: 150, 151 and 300 entries respectively. It contains 601 entries and 598 distinct Hanzi spellings, including words that appear at different levels with different senses.
02Two interfaces, one learning foundation
Offline desktop app
Qt 6, QML and C++17 with CMake. JSON-backed vocabulary and sentence models, saved progress through QSettings, Leitner flashcard scheduling, light and dark themes, and keyboard shortcuts.
Browser edition
Plain HTML, CSS and JavaScript. Flashcards, word search, vocabulary quizzes, sentence building and grammar lessons, with progress saved in the browser. A PHP backend adds a shared leaderboard on supported hosting.
03Learn, practise, revisit
- Flashcards: Hanzi, tone-marked pinyin, meanings, radicals and examples, with known/learning status.
- Vocabulary quizzes: practise recognition with multiple-choice questions and optional hints.
- Browser grammar: 155 guided lessons, with 775 dedicated practice sentences and 1,038 sentence records across the game. Search by pattern, filter by topic, and save your practice progress.
- Word browser: search vocabulary by Hanzi, pinyin, meaning or radical.
- Progress: completed rounds, scores and difficulty controls; desktop and browser histories are separate.
I’m currently learning HSK 3. This is a personal learning project; the vocabulary is based on HSK 2.0 lists. Source and data-license notices are included in the browser app.