Visual editor for creating, managing, and exporting LabQuiz question banks.
quiz_editor is a Streamlit-based application designed to help instructors build structured quiz databases for use with LabQuiz — without manually editing YAML files. quiz_editor can also be useful outside of LabQuiz as a general quiz-editor with export capabilities.
It supports question authoring, template variable simulation, encryption, tagging, and export to multiple formats.
While LabQuiz uses YAML files for defining quizzes, editing them manually can become tedious for large question banks.
quiz_editor provides:
- A visual interface for question creation
- Support for multiple question types
- Built-in encryption & encoding
- Export to multiple formats (subset of questions, HTML, AMC-$\LaTeX$)
- Tagging, Categories and filtering system
- Template variable simulators
pip install quiz-editorpip install git+https://github.com/jfbercher/quiz_editor.gitAn entry-point is provided that allows to simply use
quiz_editorOr use the hosted version:
👉 https://jfb-quizeditor.streamlit.app/
quiz_editor -- editing a question, with category, tags, choice of question type (multiple choice, numeric, etc.)
quiz_editor -- editing a proposition -- correct or incorrect, hint (tip), answer (displayed during correction), bonus, penalty, etc.
quiz_editor -- example of template usage with potentially external variables, including an editor preview based on automatically generated variables.
mcq— Multiple choicenumeric— Numerical with tolerancemcq-template— Parameterized MCQnumeric-template— Parameterized numeric
For template questions, quiz_editor allows you to define variable generators (“simulators”) directly in the interface.
Each variable can specify:
type(int, float, etc.)structure(scalar, vector, …)engine(e.g., NumPy RNG)call(generation function, e.g.integers(0,10,size=1))
This enables:
- Dynamic generation of values
- Testing template behavior before export
- Automatic inclusion of variable definitions in the YAML file
- Consistent export to LabQuiz, HTML, or AMC formats
These simulators make template questions robust and reusable across sessions.
- Create / edit / delete questions
- Add categories and tags
- Define logical constraints (XOR, IMPLY, SAME, IMPLYFALSE)
- Configure bonuses and penalties
- Define tolerances for numerical answers
- Template variables simulation: define variable generators directly in the interface, which enable dynamic generation of values in LabQuiz and in HTML, or AMC exports.
quiz_editor can export to:
- ✅ YAML (LabQuiz format)
- 🔐 Encrypted version
- 🔎 Base64-encoded version
- 🌍 Interactive HTML (training mode)
- 📝 HTML exam version (Google Sheet connected)
- 📄 AMC–LaTeX format (for paper exams)
This allows reuse of the same question bank across:
- Notebook-based quizzes
- Web-based self-assessment
- Secure online exams
- Paper multiple-choice exams
Typical workflow:
- Create questions in
quiz_editor - Export encrypted YAML
- Use file in:
from labquiz import QuizLab
quiz = QuizLab(URL, "questions.yaml")labquiz— Notebook quiz enginequiz_editor— Question bank editorquiz_dash— Monitoring & correction dashboard
GNU GPL-3.0 license

