Manthan
Manthan copied to clipboard
Multiple Select and Numerical Answer Type Questions + (Dynamic #choices)
Is your feature request related to a problem? Please describe. Currently the app only provides MCQ type questions. If I was creating a test, I would expect to put in a healthy mix of NAT and MSQ as well.
Describe the solution you'd like
(Assuming backward compatibility is required)
The QuestionSchema
model can be extended to hold a information about the type of question. A member like category
, since type
is already used. The Update()
in the tests
controller can then be updated to handle scoring for the selected type.
For NAT questions, this is rather simple to implement - answer holds the correct number. For MSQ, the answer
string can be used as an adhoc bitfield.
(No backwards compatibility)
QuestionShema
is very rigid right now and provides very little scope for improvement down the road. Here are some simple ways it should be refactored.
QuestionSchema.options
should be an array, instead of 4 statically defined members. This allows for
- Dynamic number of choices
- Partial scoring/negative marking for each choice
QuestionSchema.answer
should be a bit field (integer) describing which question are correct. In case of NAT, this would be the answer itself. This also allows an easy way to fix the issue of the answer needing to be retyped when creating the question. This current method presents an opportunity for human error, namely typos. With a bitfield, the teacher only needs to select which question(s) are correct and the clientside can generate the bitfield in the background.
QuestionSchema.group
would point to the group of the question (currently what type
does)
QuestionSchema.type
would point to the type of the question [MCQ|MSQ|NAT]
Describe alternatives you've considered The system doesn't provide any way to give MSQs or NATs.
Additional context nada, nothing here yet. I can provide mocksup to show the program flow and possible UI depending on whether the maintainer wants backwards compatibility.
@aavishkarmishra please let me know how important backwards compatibility is. 🙌🏼
@aavishkarmishra please let me know how important backwards compatibility is. 🙌🏼
Backward compatibility is not required as much, we anyway have to update test view and create test according to this issue. So according to me this will not create any problem, feel free to create pull request.
Cools. I'll start working on a PR