← Software projectsPersonal project / Language learning

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.

Qt 6 · QML · C++17HTML · CSS · JavaScriptHSK 1–3
学

MANDARIN GARDEN

Learn a little. Grow every day.

Browser edition: 601 vocabulary entries · 1,038 sentence records · 155 grammar lessons

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.
Learning status

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.