12 question types
multiple_choice, true_false, multiple_select, fill_blank, matching, ordering, numeric, short_answer, cloze, hotspot, essay, calculated. Ten are auto-corrected; essay is manual/LLM-assisted; calculated is an advanced formula type.
Reuse, import & export
- Reuse: questions live in
QuestionBanks and are reused across quizzes; the editor's picker filters by bank, type, difficulty and tags. - Pooling: a quiz can draw a random subset from one or more banks (server-side, different per student).
- Import/export: GIFT (Moodle/Canvas/Blackboard) and CSV. A bidirectional converter (
questionToQuizQuestion/quizQuestionToQuestionData) keeps the bank and live quizzes in sync.
Concept tagging → adaptive learning
Every question carries concepts[], mapped to ConceptMastery. Without concept tags there is no adaptive update — with them, each answer refines the Bayesian mastery model and can surface misconceptions.
RAG ingestion
A bank can be ingested into the per-tenant RAG (/question-banks/[id]/rag-ingest), so the AI tutor can reference the institution's own item pool.
Psychometric analytics
Quiz analytics over the bank's items compute item difficulty, point-biserial discrimination, distractor analysis, Cronbach's alpha and score distribution — flagging items that don't discriminate well.