A simple, cheerful practice site for the Australian citizenship test. Plain HTML, CSS and JavaScript, so it runs on GitHub Pages with no build step. Progress is saved only in the visitor’s own browser (localStorage).
| Section | What it does | | — | — | | Key terms | 93 important or unfamiliar words. Flashcards, then a quick quiz. Simple definitions, examples and booklet pages. | | Practice exam | 20 questions, unnumbered, 3 choices each, 45 minutes, like the official practice test. 15 general plus 5 values questions. Pass = 15 of 20 AND all 5 values correct. Timer sits in the corner; going over only shows how much extra time was used. Feedback “at the end” or “after each question”. | | Focus practice | Pick any of 27 subtopics across the 4 booklet parts and practise 5, 10 or 20 questions. | | My progress | Strength map by subtopic (last 20 answers), best topics to practise next, exam history, key terms learned. |
In every test, key words in the question are tappable for a simple meaning. Every question has a Listen button (browser speech, prefers an Australian voice), A+/A- text size, high contrast, kind feedback (no buzzers, no red crosses) and large touch targets.
site/data/questions-part1..4.js, written as one line each:
Q("p1-flags", "stem", "correct", "wrong 1", "wrong 2", page);node tools/serve.js # then open http://localhost:4173
node tools/validate.js # checks every question and term
node tools/test-logic.js # tests the pass rule and exam builder
You can also just open site/index.html in a browser.
Push to a repository’s main branch. In the repository settings choose Pages > Source > GitHub Actions.
The workflow in .github/workflows/pages.yml validates the content and publishes the site folder.
Check the Department of Home Affairs for current rules. The original local-app plan is kept in docs/ for reference.