Skip to content

Question bank: pools, question editor, JSON / Excel import and export

The question bank belongs to the tenant, not to a course: questions live in pools (topics), and any exam can draw from them. Open it with the Question bank button on the Exams tab.

  • Permission: training:manage — the bank also holds the correct answers, so nobody else sees it.
  • Question types: single choice, multiple choice, true/false, numeric with tolerance (e.g. 4.5 ± 0.1 bar). There are no essay (hand-graded) questions: the import rejects such a row.
  1. New pool — give it a name (e.g. “Safety”). From the pool’s ⋮ menu you can rename it, copy it (with all its questions) or archive it.
  2. New question — choose the type, write the question (Markdown with formulas: $p = F/A$), the options with the correct ones ticked (for numeric: the correct value, tolerance and unit), the explanation (shown after submission), the points, and mark it critical if needed. Preview as candidate shows exactly what the candidate will see.
  3. Question ⋮ menu: edit, duplicate or move to another pool, archive (archived questions are not drawn).
  4. Import: Import → pick a .json or .xlsx file → Check. Checking writes nothing: it summarises how many questions go into which pool (existing or new), or lists the problems per path (for Excel, per row). For a clean file, Confirm import writes everything in one step.
  5. Export: Export (JSON) — the versioned operex.question-bank/v1 format (re-importable); Export (Excel); Excel template (with sample rows); JSON schema (for external generators).

Questions in a pool show the type badge, the version (v1, v2…), the points and the “Correct: …%” rate. The rate comes from submitted attempts; if there are none yet, it says “no data” (not 0%).

What you see Why What to do
“A single-choice question needs exactly one correct answer” You ticked two, or none. Tick exactly one (or switch to multiple choice).
“The document is not an “operex.question-bank/v1” document” The JSON schema field is missing or different. Start from an export or from the JSON schema.
“Unknown field” with a path The JSON contains a key the schema does not define. Remove or fix the field shown.
“A live pool with this name already exists” Pool names are unique. Pick another name.

Last updated: