[Design]-QuML Global Question Bank

Problem Statement:

  • Creator should be able to create a public question while working on questionset

  • The public question should be available for re-use.

  • While adding questions from question bank, creator should be able to modify the question slightly/fully.

Solution:

Public Question Creation:

  • While creating question under questionset, Creator will have an option to mark the question as public.

  • update hierarchy api will be enhanced to accept public visibility for question.

  • When QuestionSet will be sent for Review, all questions with parent visibility and draft version of public questions should be submitted to Review.

  • When QuestionSet will be sent for Publish, all questions with parent visibility and public question created should be published.

  • parent metadata will continue to exist for public question as well.

 

Using Question from Global Question Bank:

  • Creator will have a search option to search relevant question from global question bank.

  • Creator can use the question from global question bank as is.

  • If Creator wish to modify (partially/fully) the public question, the question object will be cloned (deep copy) and all modification will be applicable on the copied object.

  • Copied object will have the same visibility as the original one. It means it will be public by default.

  • Copied object will have the parent visibility by default unless creator mark it as public.

 

Code Changes:

  • Question/QuestionSet Review & Publish API’s will be enhanced.

  • QuestionSet publish flink job will be enhanced.

  • Two new end points, question & questionset copy api’s will be introduced.