Manthan icon indicating copy to clipboard operation
Manthan copied to clipboard

Multiple Select and Numerical Answer Type Questions + (Dynamic #choices)

Open JadeMaveric opened this issue 3 years ago • 3 comments

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

  1. Dynamic number of choices
  2. 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.

JadeMaveric avatar Mar 13 '21 05:03 JadeMaveric

@aavishkarmishra please let me know how important backwards compatibility is. 🙌🏼

JadeMaveric avatar Mar 13 '21 06:03 JadeMaveric

@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.

aavishkarmishra avatar Mar 13 '21 11:03 aavishkarmishra

Cools. I'll start working on a PR

JadeMaveric avatar Mar 13 '21 16:03 JadeMaveric