A self-contained, offline-friendly quiz application for practicing the learner's licence test. The app contains 877 questions, including traffic-sign recognition questions with images, and provides both practice and mock-test modes.
Learner's Test Practice is a browser-based quiz application designed to make learner's licence preparation simple and interactive.
It runs entirely on the client side using HTML, CSS, and JavaScript, with question data stored locally in data.json. No external JavaScript libraries or backend server are required.
- 877 learner's licence practice questions
- Traffic-sign questions with images
- Practice mode with customizable question counts
- Timed 30-question mock tests
- Instant answer feedback
- Automatic scoring and results
- Personal best tracking using browser local storage
- Answer review after each attempt
- Session-based PIN access
- No database or backend required
Choose from:
- 10 questions
- 25 questions
- 50 questions
- All 877 questions
Questions are shuffled for each attempt.
The mock test contains 30 random questions with a 30-second timer per question.
The interface displays:
- Countdown timer
- Live score
- Current question
- Answer options
- Automatic progression when time expires
The test ends immediately when the passing threshold of 18 correct answers is reached.
After selecting an answer, the application immediately indicates whether the selected answer is correct or incorrect.
The results screen displays:
- Time taken
- Correct answers
- Incorrect answers
- Unanswered questions
- Score percentage
- Personal best comparison
Attempts are stored in the browser's local storage, allowing previous performance to persist when using the same browser and device.
After completing a quiz, users can review every question and compare:
- Their selected answer
- The correct answer
Users can exit an active quiz at any time after confirming the action.
| Technology | Purpose |
|---|---|
| HTML5 | Page structure |
| CSS3 | Styling and responsive interface |
| JavaScript | Quiz logic and application functionality |
| JSON | Question data storage |
| Browser Local Storage | Attempt history and personal bests |
No external JavaScript libraries or build tools are required.
learners-test-practice/
│
├── index.html
├── style.css
├── app.js
├── data.json
├── images/
│ └── traffic-signs and other question images
├── README.md
└── .gitignore
index.html— Application structure and screensstyle.css— Styling and responsive designapp.js— Quiz logic, scoring, timers, storage and navigationdata.json— 877 quiz questions and answer dataimages/— Traffic-sign icons and other images referenced by questions
Because the application loads data.json using fetch(), it should be served through a local web server rather than opened directly using file://.
Open a terminal in the project folder and run:
python -m http.server 8000Then open:
http://localhost:8000
On systems where python is not recognized, try:
python3 -m http.server 8000If Node.js is installed:
npx serve .Open the local URL displayed in the terminal.
Install the Live Server extension, then:
- Open the project in VS Code.
- Right-click
index.html. - Select Open with Live Server.
The application includes a simple browser-side PIN screen before the quiz content is displayed.
This is intended only as a casual access gate, not as a security mechanism. Because the application runs entirely in the browser, the PIN and related logic can be inspected or bypassed by someone with access to the source code.
The PIN itself is intentionally not documented in this public repository.
The application currently contains 877 questions extracted from a learner's licence study guide.
A small number of questions in the original source material contained inconsistencies, including missing or multiple marked answers. These cases were manually reviewed and resolved using standard learner's-licence and traffic-rule references.
Where applicable, inferred answers are marked internally as answer_inferred.
A short demonstration video showing the application interface and quiz flow is included with this project.
VID-20260918-WA0016.mp4
The application is a static client-side website and can be deployed using services such as:
- Netlify
- GitHub Pages
- Vercel
- Cloudflare Pages
No backend server is required for the core application.
Potential improvements include:
- More comprehensive question categorization
- Progress dashboards
- Topic-wise practice
- Improved accessibility
- Mobile UI refinements
- Additional traffic-sign explanations
- Cloud-based progress synchronization
- Expanded question bank
Status: Completed / Functional
The current version supports practice quizzes, timed mock tests, scoring, answer review, local performance tracking, and traffic-sign questions with images.
Ann Nova
GitHub: @annnova2007
This project is intended for educational and practice purposes.
Please verify learner's licence rules and regulations against the latest official transport authority resources before relying on the information for an actual examination.