Future question bank/sharing/versioning requirements
In my overview roadmap of things that needed to be improved in related to Moodle's question code, one item was that we needed to improve the sharing model in Moodle's question bank, and introduce question versioning.
These are significant changes that will need to be carefully thought out. We have to make possible all the different types of sharing that people want, without making the question bank any more complicated. In fact, there is ample evidence in the quiz forum that the sharing in the question bank in Moodle 1.9 is already too complicated for most people to understand fully.
But, before we can design a solution, we need to make sure we know what the problem is.
- Please list any related requirements you have on this page.
- Please try to express your requirements from the user's point of view, not a developer's point of view.
- Describe thing that the are currently possible, that we must keep,
- and also things that are not currently possible, but which should be.
Question organisation requirements
Questions in hierarchical cateogies
(existing feature, since 2.0).
Thread of comments for each question
Helps teachers collaborate about the question. In some activities, perhaps students could be allowed to comment too.
(What about ratings?)
Clear which question a particular quiz uses
(Otherwise, as a present, backup and restore is a nightmare.) Would also apply to any other activity that used questions (e.g. Lesson, Self-test.)
It is probably enough just to have question banks at course level. The admin can always make a separate "Physics questions" course, and enrol the people who should have access as teachers there.
- As an alternative could roles (individual and cohorts) be assigned to a question category. Currently special roles are being created to allow nonteachers the ability to add questions. However if the roles could be extended to the categories would it be possible to assign a "teacher" role to a course category and/or assign a "teacher or manager" role at the site level to share questions in multiple courses.--Mark McCall, 22 July 2011
- I don't think so. This effectively mean creating a new type of context, which is a lot of extra complexity to add to Moodle just for the question bank. I don't think that is necessary or desirable, and I would expect such a change would (rightly) be rejected by the Moodle HQ developers who would have to review and integrate such changes.--Tim Hunt 15:24, 22 July 2011 (WST)
Question bank for each user
Where they can build up a private collection of questions.
Gives undo. Also makes sharing safer. The kind of model I am thinking of is similar to a wikipedia page (or Moodle Docs page!)
Except that once a question is shared in different places, this can lead to branching, and a desire to merge. So, I am also looking enviously at some of the git features, but I don't want to over-complicate things.
License information attached to each question
Like when you upload a file. Helps with sharing.
This would let a remote question editing tool
- retrieve a question directly from Moodle's question,
- present it to the user to be edited, and then
- when the user saves, the edited question is written directly back into the Moodle question bank.
Import/export to update existing questions, not just add new ones
This enables the following workflow:
- Export all the questions in a category to Moodle XML.
- Load in your text editor, and to a search-and-replace to fix some problem that affects a lot of the questions.
- Re-import to replace the existing questions.
Integration with community hubs
A way to push and pull question banks to and from community hubs.
Copy (duplicate) Questions
Add a button "Copy" for selecting single or multiple question(s) from the question bank that is used in together with the target category listbox to copy (duplicate) them into the selected category. (Nadav Kavalerchik 22:27, 18 April 2012 (WST))
Please add more...
Question-bank interface requirements
Question bank should be made up of separate plugins
The existing code should be split into plugins:
- Question bank view
- Manage categories
- Preview question
- Edit question
If these are plugins, then it other people can add new custom features easily. Some ideas would be:
- Display all the content of questions in a plain-text form to facilitate proof-reading and checking
- Joseph Rezeau's create questions from Glossary block (or from other questions like randomsamatch does, or from database entries)
- Edit question by editing the GIFT or XML source in the browser window
- Views of question statistics in all the places they are used (not just one quiz)
- Change the penalty factor (or other field) of a lot of questions at once
Easy but powerful searching
Users can choose which columns they want to see.
Collapsible question categories/sub-categories to make working with large question banks easier.
- Ways to reorganise the categories, move questions between them, etc.
- Ways to tag questions easily.
Please add more...
Relevant tracker issues
- MDL-27794 meta-bug to track this project
- MDL-16345 Moodle 2.0 question bank improvements
- MDL-21447 Add a plugin hook to the question bank
- MDL-27743 Print Question Bank
- MDL-27630 Sort order is unclear in question bank
- MDL-26279 Question bank editing interface consolidation
- MDL-21961 Add comment field and author field to question bank records
- MDL-14802 It is possible to move shared questions in the question bank to a place where they are no longer properly shared
- MDL-21886 Question bank import file type list, put MoodleXML and GIFT at top
- MDL-14767 Need to implement the bit in question_move_questions_to_category that handles datasets
- MDL-20251 Improve category list editing interface like cm's in the course
- MDL-23806 Implement extra_question_tables functionality like extra_question_fields
- MDL-10899 Moving questions by using a call to a qtype->movingtocategory() function
- MDL-20584 Warning user of changes when editing a question used in a quiz
- MDL-26718 Questions don't move to new category properly
- MDL-29149 Problem with the QUIZ-LEVEL DEFAULT Question category