A project that began with a real final exam
Modern Chinese History Challenge started during my own preparation for a university final. The course provided 264 original questions, but repeatedly reading a document made it difficult to know what I could actually recall, which topics remained weak, or whether mistakes had been resolved.
I built a tool around that specific study situation rather than beginning with a general ambition to create an education platform.

The home page is built around 264 original questions and offers challenge practice, mock exams, and memory cards.
Reorganizing revision instead of moving a question bank online
The question bank is organized into several learning paths. Challenge practice supports continuous answering with immediate feedback. Mock exams combine question types and delay feedback until submission. Memory cards hide options so the learner must recall an answer before checking. Topic practice provides a narrower entry point.
The home page also shows a learning record stored on the current device, including attempts, accuracy, progress, and outstanding wrong answers.

The home page is both a navigation surface and a local learning record. The screenshot uses demonstration data and does not represent public user scale.
Making active recall a concrete action
In memory-card mode, the question appears without answer options. The learner first says or forms the answer mentally, then reveals the card and marks whether it was recalled. Items that were not recalled return to the queue instead of being treated as learned after the answer is seen.

Recall comes first, then checking. Unrecalled items return to the review queue.
Practice, simulation, and the wrong-answer loop
Mock mode creates one combined paper, tracks progress, and provides no answer hints during the attempt. Incorrect and unanswered questions enter the wrong-answer collection after submission.

Mock mode uses one submission point and withholds feedback until the paper is complete.
Wrong answers can be retried individually or as a complete set. An item leaves the queue only after it is answered correctly, so the queue becomes smaller as actual review progresses.

Wrong answers enter a review queue and leave automatically after a correct retry.
From a usable single file to a maintainable project
The earliest version was a single-file web page built quickly for immediate use. After the study need was proven, I reorganized the data, views, state, and styling so that questions and learning modes could be maintained without changing one large file.
The refactor also addressed responsive layout, keyboard and touch behavior, progress persistence, invalid local data, and clearer boundaries between the question bank and interface logic.
Question-bank and engineering boundaries
The product uses the supplied 264 course questions. I organized and checked the data but do not claim authorship of the original questions. The tool supports course revision and does not replace the course material or guarantee examination results.
Why learning records stay on the device
Progress and wrong-answer data are stored locally in the browser. The product does not require an account or send a learner’s answers to a server. This keeps the first version simple and private, although records do not automatically synchronize across devices and can be lost when browser storage is cleared.
Actual use and result
I used the tool in my own revision and iterated from concrete friction encountered during study. The public version can now be used on desktop and mobile, but I do not present personal use as evidence of broad learning effectiveness.
Current outcome and limits
The complete product is live with 264 questions, multiple revision paths, local progress, and a wrong-answer loop. Its content is tied to one course question bank, long-term retention has not been measured, and broader user testing remains limited. Future work should prioritize data accuracy, accessibility, and observed learning behavior over feature expansion.