VirtMicro · Learn by doing
Build confidence. One quiz at a time.
Pick a topic or create your own.
Quiz library source
Load topics from a public GitHub repository or catalog JSON URL.
How to add a quiz · JSON format
Add your question file and a catalog entry in the quiz-library repository. The catalog creates the tiles; each quiz file supplies its questions.
1. Add a tile in catalog.json
Add an entry to the existing quizzes array. Keep version set to 1. The file URL is relative to the catalog.
{
"version": 1,
"title": "My quiz library",
"quizzes": [
{
"id": "python",
"title": "Python",
"description": "Python fundamentals",
"url": "quizzes/python.json"
}
]
}
Keep the existing quiz entries when adding a new one. Each tile needs a unique id, a title, and a url; description is optional.
2. Create quizzes/python.json
{
"version": 1,
"title": "Python Fundamentals",
"questions": [
{
"id": "python-001",
"topic": "Collections",
"question": "Which built-in type is immutable?",
"options": ["list", "dict", "set", "tuple"],
"answerIndex": 3,
"explanation": "A tuple’s elements cannot be reassigned."
}
]
}
answerIndexcounts from zero: A = 0, S = 1, D = 2, F = 3.- Use exactly four distinct, nonempty options and a unique question
idwithin each quiz. - Include nonempty
topic,question, andexplanationtext. You can add any subject and any number of questions. - For a code-based question, add optional
"code": "line one\nline two"and"language": "yaml"fields to the question. Use\ninside the JSON string for line breaks. The app displays code with its indentation preserved. - Optionally tag a question with
"focus": "fundamentals"or"focus": "scenarios"for practice filtering. Mixed includes all questions, including untagged ones. - For a reference example shown after answering, add an
exampleIdto the question and asnippetsUrlto the quiz. See the snippet library and QA guide. - Use double quotes, with no comments or trailing commas. Keep
versionset to1.
3. Save and refresh
Commit the files to main in the library repository. Reload the app to see new tiles, or reopen a topic to fetch updated questions. No app deployment is needed. GitHub may cache updates briefly.