<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zhan23</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zhan23"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Zhan23"/>
	<updated>2026-07-16T04:15:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121657</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121657"/>
		<updated>2018-12-18T20:56:38Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Design Strategy''&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
''Changes in the User Interface''&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note: Because the pull request contains some code irrelevant to this project which make it confusing, we post our code here for you to read clearly.&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
Look up the questionnaire ID of a team.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def self.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    team = Team.find(team_id)&lt;br /&gt;
    if team.blank?&lt;br /&gt;
      nil&lt;br /&gt;
    else&lt;br /&gt;
      team.supplementary_review_questionnaire_id&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/supplementary_review_questionnaire.rb&lt;br /&gt;
&lt;br /&gt;
Add the SupplementaryReviewQuestionnaire class which is the subclass of Questionnaire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # This is one type of Questionnaire and  as intuitively expected this model class&lt;br /&gt;
 # derives from Questionnaire.&lt;br /&gt;
 class SupplementaryReviewQuestionnaire &amp;lt; Questionnaire&lt;br /&gt;
   # Make me better.&lt;br /&gt;
   attr_accessible&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review responses to &amp;quot;Show Review&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def construct_review_response code, self_id, show_tags = nil, current_user = nil&lt;br /&gt;
    code += '&amp;lt;table id=&amp;quot;review_' + self_id + '&amp;quot; style=&amp;quot;display: none;&amp;quot; class=&amp;quot;table table-bordered&amp;quot;&amp;gt;'&lt;br /&gt;
    answers = Answer.where(response_id: self.response_id)&lt;br /&gt;
    team_id = response_map.reviewee_id&lt;br /&gt;
    supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    unless answers.empty?&lt;br /&gt;
      questionnaire = self.questionnaire_by_answer(answers.first)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        supplementary_review_questions = supplementary_review_questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      questionnaire_max = questionnaire.max_question_score&lt;br /&gt;
      questions = questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      # get the tag settings this questionnaire&lt;br /&gt;
      tag_prompt_deployments = show_tags ? TagPromptDeployment.where(questionnaire_id: questionnaire.id, assignment_id: self.map.assignment.id) : nil&lt;br /&gt;
      code = add_table_rows questionnaire_max, questions, answers, code, tag_prompt_deployments, current_user&lt;br /&gt;
    end&lt;br /&gt;
    comment = if !self.additional_comment.nil?&lt;br /&gt;
                self.additional_comment.gsub('^p', '').gsub(/\n/, '&amp;lt;BR/&amp;gt;')&lt;br /&gt;
              else&lt;br /&gt;
                ''&lt;br /&gt;
              end&lt;br /&gt;
    code += '&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Additional Comment: &amp;lt;/b&amp;gt;' + comment + '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;'&lt;br /&gt;
    code += '&amp;lt;/table&amp;gt;'&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Views:&lt;br /&gt;
&lt;br /&gt;
app/views/assignments/edit/_rubrics.html.erb&lt;br /&gt;
&lt;br /&gt;
Add checkbox which professor used to indicate whether students can create their own questions. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!--Add a allow studuent-generated questionnaires checkbox. --&amp;gt;&lt;br /&gt;
 &amp;lt;input name=&amp;quot;assignment_form[assignment][supplementary_review_questionnaire]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;%= check_box_tag('assignment_form[assignment][supplementary_review_questionnaire]', 'true', @assignment_form.assignment.supplementary_review_questionnaire) %&amp;gt;&lt;br /&gt;
 &amp;lt;%= label_tag('assignment_form[assignment][supplementary_review_questionnaire]', 'Allow student-generated questions added to rubric?') %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/views/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
Add code to show the supplementary questions to the reviewers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;br&amp;gt;&lt;br /&gt;
       &amp;lt;% unless @supplementary_review_questions.nil? %&amp;gt;&lt;br /&gt;
       &amp;lt;tr&amp;gt;&lt;br /&gt;
         &amp;lt;td&amp;gt;&lt;br /&gt;
           &amp;lt;h2&amp;gt;Supplementary Review Questions&amp;lt;/h2&amp;gt;&lt;br /&gt;
         &amp;lt;/td&amp;gt;&lt;br /&gt;
       &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% @supplementary_review_questions.each do |question| %&amp;gt;&lt;br /&gt;
         &amp;lt;tr&amp;gt;&lt;br /&gt;
           &amp;lt;td&amp;gt;&lt;br /&gt;
             &amp;lt;% answer = Answer.where(question_id: question.id, response_id: @response.id).first if !@response.nil? %&amp;gt;&lt;br /&gt;
             &amp;lt;% if question.instance_of? Criterion %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score, @dropdown_or_scale) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? Scale %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? UploadFile %&amp;gt;&lt;br /&gt;
             &amp;lt;% else %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer) %&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
           &amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;% if [Criterion, TextArea].include? question.class %&amp;gt;&lt;br /&gt;
                 &amp;lt;div id=&amp;quot;analysis_&amp;lt;%= i.to_s %&amp;gt;_comments&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
         &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% i += 1 %&amp;gt;&lt;br /&gt;
         &amp;lt;% end %&amp;gt;&lt;br /&gt;
       &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/views/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
Add button for &amp;quot;your work&amp;quot; page to let students create their own questions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if stage != &amp;quot;Finished&amp;quot; and controller.controller_name == 'submitted_content' and @can_submit %&amp;gt;&lt;br /&gt;
  &amp;lt;h2&amp;gt;Add Supplementary Review Questions:&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.supplementary_review_questionnaire? %&amp;gt;&lt;br /&gt;
      &amp;lt;%= button_to &amp;quot;Create Supplementary Rubric&amp;quot;, {:controller =&amp;gt; &amp;quot;questionnaires&amp;quot;, :action =&amp;gt; &amp;quot;create_supplementary_review_questionnaire&amp;quot;, :id =&amp;gt; participant.id } %&amp;gt;&lt;br /&gt;
    &amp;lt;% else %&amp;gt;&lt;br /&gt;
      The instructor hasn't enabled this feature for this assignment&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review questionnaires part to the create, edit, update methods and some other methods which getting the questionnaires.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  # Prepare the parameters when student clicks &amp;quot;Edit&amp;quot;&lt;br /&gt;
  def edit&lt;br /&gt;
    assign_instance_vars&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if @prev.present?&lt;br /&gt;
      @sorted = @review_scores.sort {|m1, m2| m1.version_num.to_i &amp;amp;&amp;amp; m2.version_num.to_i ? m2.version_num.to_i &amp;lt;=&amp;gt; m1.version_num.to_i : (m1.version_num ? -1 : 1) }&lt;br /&gt;
      @largest_version_num = @sorted[0]&lt;br /&gt;
    end&lt;br /&gt;
    @modified_object = @response.response_id&lt;br /&gt;
    # set more handy variables for the view&lt;br /&gt;
    set_content&lt;br /&gt;
    @review_scores = []&lt;br /&gt;
    @questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @supplementary_review_questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @questionnaire = set_questionnaire&lt;br /&gt;
    render action: 'response'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Update the response and answers when student &amp;quot;edit&amp;quot; existing response&lt;br /&gt;
  def update&lt;br /&gt;
    render nothing: true unless action_allowed?&lt;br /&gt;
    # the response to be updated&lt;br /&gt;
    @response = Response.find(params[:id])&lt;br /&gt;
    msg = &amp;quot;&amp;quot;&lt;br /&gt;
    begin&lt;br /&gt;
      @map = @response.map&lt;br /&gt;
      @response.update_attribute('additional_comment', params[:review][:comments])&lt;br /&gt;
&lt;br /&gt;
      set_questionnaire&lt;br /&gt;
      questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
      create_answers(params, questions) unless params[:responses].nil?&lt;br /&gt;
&lt;br /&gt;
      @response.update_attribute('is_submitted', true) if params['isSubmit'] &amp;amp;&amp;amp; params['isSubmit'] == 'Yes'&lt;br /&gt;
      @response.notify_instructor_on_difference if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; @response.is_submitted &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
    rescue StandardError&lt;br /&gt;
      msg = &amp;quot;Your response was not saved. Cause:189 #{$ERROR_INFO}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    ExpertizaLogger.info LoggerMessage.new(controller_name, session[:user].name, &amp;quot;Your response was submitted: #{@response.is_submitted}&amp;quot;, request)&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
 def create&lt;br /&gt;
    map_id = params[:id]&lt;br /&gt;
    map_id = params[:map_id] unless params[:map_id].nil? # pass map_id as a hidden field in the review form&lt;br /&gt;
    @map = ResponseMap.find(map_id)&lt;br /&gt;
    @team_id = @map.reviewee_id&lt;br /&gt;
&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if params[:review][:questionnaire_id]&lt;br /&gt;
      @questionnaire = Questionnaire.find(params[:review][:questionnaire_id])&lt;br /&gt;
      @round = params[:review][:round]&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      @round = nil&lt;br /&gt;
    end&lt;br /&gt;
    is_submitted = (params[:isSubmit] == 'Yes')&lt;br /&gt;
    was_submitted = false&lt;br /&gt;
    @response = Response.where(map_id: @map.id, round: @round.to_i).first&lt;br /&gt;
    if @response.nil?&lt;br /&gt;
      @response = Response.create(&lt;br /&gt;
        map_id: @map.id,&lt;br /&gt;
        additional_comment: params[:review][:comments],&lt;br /&gt;
        round: @round.to_i,&lt;br /&gt;
        is_submitted: is_submitted&lt;br /&gt;
      )&lt;br /&gt;
    end&lt;br /&gt;
    was_submitted = @response.is_submitted&lt;br /&gt;
    @response.update(additional_comment: params[:review][:comments], is_submitted: is_submitted) # ignore if autoupdate try to save when the response object is not yet created.&lt;br /&gt;
&lt;br /&gt;
    # ,:version_num=&amp;gt;@version)&lt;br /&gt;
    # Change the order for displaying questions for editing response views.&lt;br /&gt;
    questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      questions += supplementary_review_questions&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    create_answers(params, questions) if params[:responses]&lt;br /&gt;
    msg = &amp;quot;Your response was successfully saved.&amp;quot;&lt;br /&gt;
    error_msg = &amp;quot;&amp;quot;&lt;br /&gt;
    # only notify if is_submitted changes from false to true&lt;br /&gt;
    if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; (was_submitted == false &amp;amp;&amp;amp; @response.is_submitted) &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
      @response.notify_instructor_on_difference&lt;br /&gt;
      @response.email&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, error_msg: error_msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # new_response if a flag parameter indicating that if user is requesting a new rubric to fill&lt;br /&gt;
  # if true: we figure out which questionnaire to use based on current time and records in assignment_questionnaires table&lt;br /&gt;
  # e.g. student click &amp;quot;Begin&amp;quot; or &amp;quot;Update&amp;quot; to start filling out a rubric for others' work&lt;br /&gt;
  # if false: we figure out which questionnaire to display base on @response object&lt;br /&gt;
  # e.g. student click &amp;quot;Edit&amp;quot; or &amp;quot;View&amp;quot;&lt;br /&gt;
  def set_content(new_response = false)&lt;br /&gt;
    @title = @map.get_title&lt;br /&gt;
    if @map.survey?&lt;br /&gt;
      @survey_parent = @map.survey_parent&lt;br /&gt;
    else&lt;br /&gt;
      @assignment = @map.assignment&lt;br /&gt;
    end&lt;br /&gt;
    @participant = @map.reviewer&lt;br /&gt;
    @contributor = @map.contributor&lt;br /&gt;
    new_response ? set_questionnaire_for_new_response : set_questionnaire&lt;br /&gt;
    set_dropdown_or_scale&lt;br /&gt;
    @questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      @supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @min = @questionnaire.min_question_score&lt;br /&gt;
    @max = @questionnaire.max_question_score&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire_for_new_response&lt;br /&gt;
    case @map.type&lt;br /&gt;
    when &amp;quot;ReviewResponseMap&amp;quot;, &amp;quot;SelfReviewResponseMap&amp;quot;&lt;br /&gt;
      reviewees_topic = SignedUpTeam.topic_id_by_team_id(@contributor.id)&lt;br /&gt;
      @current_round = @assignment.number_of_current_round(reviewees_topic)&lt;br /&gt;
      @questionnaire = @map.questionnaire(@current_round)&lt;br /&gt;
&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@contributor.id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    when&lt;br /&gt;
      &amp;quot;MetareviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;TeammateReviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;FeedbackResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;CourseSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;AssignmentSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;GlobalSurveyResponseMap&amp;quot;&lt;br /&gt;
      @questionnaire = @map.questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire&lt;br /&gt;
    # if user is not filling a new rubric, the @response object should be available.&lt;br /&gt;
    # we can find the questionnaire from the question_id in answers&lt;br /&gt;
    answer = @response.scores.first&lt;br /&gt;
    @questionnaire = @response.questionnaire_by_answer(answer)&lt;br /&gt;
&lt;br /&gt;
    supplementary_review_answer = @response.scores.last&lt;br /&gt;
    @supplementary_review_questionnaire = @response.questionnaire_by_answer(supplementary_review_answer)&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review responses to &amp;quot;Your Scores&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def view_team&lt;br /&gt;
    @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
    @assignment = @participant.assignment&lt;br /&gt;
    @team = @participant.team&lt;br /&gt;
    @team_id = @team.id&lt;br /&gt;
    @questions = {}&lt;br /&gt;
    questionnaires = @assignment.questionnaires&lt;br /&gt;
    retrieve_questions questionnaires&lt;br /&gt;
    @pscore = @participant.scores(@questions)&lt;br /&gt;
    @vmlist = []&lt;br /&gt;
&lt;br /&gt;
    # loop through each questionnaire, and populate the view model for all data necessary&lt;br /&gt;
    # to render the html tables.&lt;br /&gt;
    counter_for_same_rubric = 0&lt;br /&gt;
    questionnaires.each do |questionnaire|&lt;br /&gt;
      @round = nil&lt;br /&gt;
      if @assignment.varying_rubrics_by_round? &amp;amp;&amp;amp; questionnaire.type == &amp;quot;ReviewQuestionnaire&amp;quot;&lt;br /&gt;
        questionnaires = AssignmentQuestionnaire.where(assignment_id: @assignment.id, questionnaire_id: questionnaire.id)&lt;br /&gt;
        if questionnaires.count &amp;gt; 1&lt;br /&gt;
          @round = questionnaires[counter_for_same_rubric].used_in_round&lt;br /&gt;
          counter_for_same_rubric += 1&lt;br /&gt;
        else&lt;br /&gt;
          @round = questionnaires[0].used_in_round&lt;br /&gt;
          counter_for_same_rubric = 0&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vm = VmQuestionResponse.new(questionnaire, @assignment, @round)&lt;br /&gt;
      supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        unless supplementary_review_questionnaire.nil?&lt;br /&gt;
          supplementary_review_questions = supplementary_review_questionnaire.questions&lt;br /&gt;
          questionnaire.questions += supplementary_review_questions&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vmquestions = questionnaire.questions&lt;br /&gt;
      vm.add_questions(vmquestions)&lt;br /&gt;
      vm.add_team_members(@team)&lt;br /&gt;
      vm.add_reviews(@participant, @team, @assignment.varying_rubrics_by_round?)&lt;br /&gt;
      vm.get_number_of_comments_greater_than_10_words&lt;br /&gt;
      @vmlist &amp;lt;&amp;lt; vm&lt;br /&gt;
    end&lt;br /&gt;
    @current_role_name = current_role_name&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/controllers/questionnaires_controller.rb&lt;br /&gt;
&lt;br /&gt;
Method for creating Supplementary Review Questionnaire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   def create_supplementary_review_questionnaire&lt;br /&gt;
     @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
     @team = Team.find(@participant.team.id)&lt;br /&gt;
     if @team.supplementary_review_questionnaire_id.nil?&lt;br /&gt;
       @questionnaire = Questionnaire.create(privete: false, name: &amp;quot;supplementary_review_questionnaire_&amp;quot; + @team.id.to_s,&lt;br /&gt;
         instructor_id: @team_id, min_question_score: 0, max_question_score: 5, type: &amp;quot;Questionnaire&amp;quot;, display_type: &amp;quot;Review&amp;quot;&lt;br /&gt;
         instruction_loc: Questionnaire::DEFAULT_QUESTIONNAIRE_URL)&lt;br /&gt;
       if @questionnaire.save&lt;br /&gt;
         @team.supplementary_review_questionnaire_id = @questionnaire.id&lt;br /&gt;
         @team.save&lt;br /&gt;
         flash[:success] = 'You have successfully created a rubric!'&lt;br /&gt;
       else&lt;br /&gt;
         flash[:error] = $ERROR_INFO&lt;br /&gt;
       end&lt;br /&gt;
     else&lt;br /&gt;
       @questionnaire = Questionnaire.find(@team.supplementary_review_questionnaire_id)&lt;br /&gt;
     end&lt;br /&gt;
     redirect_to controller: 'questionnaires', action: 'edit', id: @questionnaire.id&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  resources :questionnaires, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :copy&lt;br /&gt;
      get :list&lt;br /&gt;
      post :list_questionnaires&lt;br /&gt;
      get :new_quiz&lt;br /&gt;
      get :select_questionnaire_type&lt;br /&gt;
      post :select_questionnaire_type&lt;br /&gt;
      get :toggle_access&lt;br /&gt;
      get :view&lt;br /&gt;
      post :create_quiz_questionnaire&lt;br /&gt;
      post :update_quiz&lt;br /&gt;
      post :add_new_questions&lt;br /&gt;
      post :save_all_questions&lt;br /&gt;
      post :create_supplementary_review_questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  resources :author_feedback_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :metareview_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :teammate_review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :assignment_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :global_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :course_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :bookmarkrating_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :supplementary_review_questionnaire, controller: :questionnaires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121656</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121656"/>
		<updated>2018-12-18T20:28:50Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Design Strategy''&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
''Changes in the User Interface''&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
Look up the questionnaire ID of a team.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def self.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    team = Team.find(team_id)&lt;br /&gt;
    if team.blank?&lt;br /&gt;
      nil&lt;br /&gt;
    else&lt;br /&gt;
      team.supplementary_review_questionnaire_id&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/supplementary_review_questionnaire.rb&lt;br /&gt;
&lt;br /&gt;
Add the SupplementaryReviewQuestionnaire class which is the subclass of Questionnaire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # This is one type of Questionnaire and  as intuitively expected this model class&lt;br /&gt;
 # derives from Questionnaire.&lt;br /&gt;
 class SupplementaryReviewQuestionnaire &amp;lt; Questionnaire&lt;br /&gt;
   # Make me better.&lt;br /&gt;
   attr_accessible&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review responses to &amp;quot;Show Review&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def construct_review_response code, self_id, show_tags = nil, current_user = nil&lt;br /&gt;
    code += '&amp;lt;table id=&amp;quot;review_' + self_id + '&amp;quot; style=&amp;quot;display: none;&amp;quot; class=&amp;quot;table table-bordered&amp;quot;&amp;gt;'&lt;br /&gt;
    answers = Answer.where(response_id: self.response_id)&lt;br /&gt;
    team_id = response_map.reviewee_id&lt;br /&gt;
    supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    unless answers.empty?&lt;br /&gt;
      questionnaire = self.questionnaire_by_answer(answers.first)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        supplementary_review_questions = supplementary_review_questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      questionnaire_max = questionnaire.max_question_score&lt;br /&gt;
      questions = questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      # get the tag settings this questionnaire&lt;br /&gt;
      tag_prompt_deployments = show_tags ? TagPromptDeployment.where(questionnaire_id: questionnaire.id, assignment_id: self.map.assignment.id) : nil&lt;br /&gt;
      code = add_table_rows questionnaire_max, questions, answers, code, tag_prompt_deployments, current_user&lt;br /&gt;
    end&lt;br /&gt;
    comment = if !self.additional_comment.nil?&lt;br /&gt;
                self.additional_comment.gsub('^p', '').gsub(/\n/, '&amp;lt;BR/&amp;gt;')&lt;br /&gt;
              else&lt;br /&gt;
                ''&lt;br /&gt;
              end&lt;br /&gt;
    code += '&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Additional Comment: &amp;lt;/b&amp;gt;' + comment + '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;'&lt;br /&gt;
    code += '&amp;lt;/table&amp;gt;'&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Views:&lt;br /&gt;
&lt;br /&gt;
app/views/assignments/edit/_rubrics.html.erb&lt;br /&gt;
&lt;br /&gt;
Add checkbox which professor used to indicate whether students can create their own questions. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!--Add a allow studuent-generated questionnaires checkbox. --&amp;gt;&lt;br /&gt;
 &amp;lt;input name=&amp;quot;assignment_form[assignment][supplementary_review_questionnaire]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;%= check_box_tag('assignment_form[assignment][supplementary_review_questionnaire]', 'true', @assignment_form.assignment.supplementary_review_questionnaire) %&amp;gt;&lt;br /&gt;
 &amp;lt;%= label_tag('assignment_form[assignment][supplementary_review_questionnaire]', 'Allow student-generated questions added to rubric?') %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/views/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
Add code to show the supplementary questions to the reviewers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;br&amp;gt;&lt;br /&gt;
       &amp;lt;% unless @supplementary_review_questions.nil? %&amp;gt;&lt;br /&gt;
       &amp;lt;tr&amp;gt;&lt;br /&gt;
         &amp;lt;td&amp;gt;&lt;br /&gt;
           &amp;lt;h2&amp;gt;Supplementary Review Questions&amp;lt;/h2&amp;gt;&lt;br /&gt;
         &amp;lt;/td&amp;gt;&lt;br /&gt;
       &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% @supplementary_review_questions.each do |question| %&amp;gt;&lt;br /&gt;
         &amp;lt;tr&amp;gt;&lt;br /&gt;
           &amp;lt;td&amp;gt;&lt;br /&gt;
             &amp;lt;% answer = Answer.where(question_id: question.id, response_id: @response.id).first if !@response.nil? %&amp;gt;&lt;br /&gt;
             &amp;lt;% if question.instance_of? Criterion %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score, @dropdown_or_scale) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? Scale %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? UploadFile %&amp;gt;&lt;br /&gt;
             &amp;lt;% else %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer) %&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
           &amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;% if [Criterion, TextArea].include? question.class %&amp;gt;&lt;br /&gt;
                 &amp;lt;div id=&amp;quot;analysis_&amp;lt;%= i.to_s %&amp;gt;_comments&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
         &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% i += 1 %&amp;gt;&lt;br /&gt;
         &amp;lt;% end %&amp;gt;&lt;br /&gt;
       &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/views/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
Add button for &amp;quot;your work&amp;quot; page to let students create their own questions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if stage != &amp;quot;Finished&amp;quot; and controller.controller_name == 'submitted_content' and @can_submit %&amp;gt;&lt;br /&gt;
  &amp;lt;h2&amp;gt;Add Supplementary Review Questions:&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.supplementary_review_questionnaire? %&amp;gt;&lt;br /&gt;
      &amp;lt;%= button_to &amp;quot;Create Supplementary Rubric&amp;quot;, {:controller =&amp;gt; &amp;quot;questionnaires&amp;quot;, :action =&amp;gt; &amp;quot;create_supplementary_review_questionnaire&amp;quot;, :id =&amp;gt; participant.id } %&amp;gt;&lt;br /&gt;
    &amp;lt;% else %&amp;gt;&lt;br /&gt;
      The instructor hasn't enabled this feature for this assignment&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review questionnaires part to the create, edit, update methods and some other methods which getting the questionnaires.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  # Prepare the parameters when student clicks &amp;quot;Edit&amp;quot;&lt;br /&gt;
  def edit&lt;br /&gt;
    assign_instance_vars&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if @prev.present?&lt;br /&gt;
      @sorted = @review_scores.sort {|m1, m2| m1.version_num.to_i &amp;amp;&amp;amp; m2.version_num.to_i ? m2.version_num.to_i &amp;lt;=&amp;gt; m1.version_num.to_i : (m1.version_num ? -1 : 1) }&lt;br /&gt;
      @largest_version_num = @sorted[0]&lt;br /&gt;
    end&lt;br /&gt;
    @modified_object = @response.response_id&lt;br /&gt;
    # set more handy variables for the view&lt;br /&gt;
    set_content&lt;br /&gt;
    @review_scores = []&lt;br /&gt;
    @questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @supplementary_review_questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @questionnaire = set_questionnaire&lt;br /&gt;
    render action: 'response'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Update the response and answers when student &amp;quot;edit&amp;quot; existing response&lt;br /&gt;
  def update&lt;br /&gt;
    render nothing: true unless action_allowed?&lt;br /&gt;
    # the response to be updated&lt;br /&gt;
    @response = Response.find(params[:id])&lt;br /&gt;
    msg = &amp;quot;&amp;quot;&lt;br /&gt;
    begin&lt;br /&gt;
      @map = @response.map&lt;br /&gt;
      @response.update_attribute('additional_comment', params[:review][:comments])&lt;br /&gt;
&lt;br /&gt;
      set_questionnaire&lt;br /&gt;
      questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
      create_answers(params, questions) unless params[:responses].nil?&lt;br /&gt;
&lt;br /&gt;
      @response.update_attribute('is_submitted', true) if params['isSubmit'] &amp;amp;&amp;amp; params['isSubmit'] == 'Yes'&lt;br /&gt;
      @response.notify_instructor_on_difference if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; @response.is_submitted &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
    rescue StandardError&lt;br /&gt;
      msg = &amp;quot;Your response was not saved. Cause:189 #{$ERROR_INFO}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    ExpertizaLogger.info LoggerMessage.new(controller_name, session[:user].name, &amp;quot;Your response was submitted: #{@response.is_submitted}&amp;quot;, request)&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
 def create&lt;br /&gt;
    map_id = params[:id]&lt;br /&gt;
    map_id = params[:map_id] unless params[:map_id].nil? # pass map_id as a hidden field in the review form&lt;br /&gt;
    @map = ResponseMap.find(map_id)&lt;br /&gt;
    @team_id = @map.reviewee_id&lt;br /&gt;
&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if params[:review][:questionnaire_id]&lt;br /&gt;
      @questionnaire = Questionnaire.find(params[:review][:questionnaire_id])&lt;br /&gt;
      @round = params[:review][:round]&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      @round = nil&lt;br /&gt;
    end&lt;br /&gt;
    is_submitted = (params[:isSubmit] == 'Yes')&lt;br /&gt;
    was_submitted = false&lt;br /&gt;
    @response = Response.where(map_id: @map.id, round: @round.to_i).first&lt;br /&gt;
    if @response.nil?&lt;br /&gt;
      @response = Response.create(&lt;br /&gt;
        map_id: @map.id,&lt;br /&gt;
        additional_comment: params[:review][:comments],&lt;br /&gt;
        round: @round.to_i,&lt;br /&gt;
        is_submitted: is_submitted&lt;br /&gt;
      )&lt;br /&gt;
    end&lt;br /&gt;
    was_submitted = @response.is_submitted&lt;br /&gt;
    @response.update(additional_comment: params[:review][:comments], is_submitted: is_submitted) # ignore if autoupdate try to save when the response object is not yet created.&lt;br /&gt;
&lt;br /&gt;
    # ,:version_num=&amp;gt;@version)&lt;br /&gt;
    # Change the order for displaying questions for editing response views.&lt;br /&gt;
    questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      questions += supplementary_review_questions&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    create_answers(params, questions) if params[:responses]&lt;br /&gt;
    msg = &amp;quot;Your response was successfully saved.&amp;quot;&lt;br /&gt;
    error_msg = &amp;quot;&amp;quot;&lt;br /&gt;
    # only notify if is_submitted changes from false to true&lt;br /&gt;
    if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; (was_submitted == false &amp;amp;&amp;amp; @response.is_submitted) &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
      @response.notify_instructor_on_difference&lt;br /&gt;
      @response.email&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, error_msg: error_msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # new_response if a flag parameter indicating that if user is requesting a new rubric to fill&lt;br /&gt;
  # if true: we figure out which questionnaire to use based on current time and records in assignment_questionnaires table&lt;br /&gt;
  # e.g. student click &amp;quot;Begin&amp;quot; or &amp;quot;Update&amp;quot; to start filling out a rubric for others' work&lt;br /&gt;
  # if false: we figure out which questionnaire to display base on @response object&lt;br /&gt;
  # e.g. student click &amp;quot;Edit&amp;quot; or &amp;quot;View&amp;quot;&lt;br /&gt;
  def set_content(new_response = false)&lt;br /&gt;
    @title = @map.get_title&lt;br /&gt;
    if @map.survey?&lt;br /&gt;
      @survey_parent = @map.survey_parent&lt;br /&gt;
    else&lt;br /&gt;
      @assignment = @map.assignment&lt;br /&gt;
    end&lt;br /&gt;
    @participant = @map.reviewer&lt;br /&gt;
    @contributor = @map.contributor&lt;br /&gt;
    new_response ? set_questionnaire_for_new_response : set_questionnaire&lt;br /&gt;
    set_dropdown_or_scale&lt;br /&gt;
    @questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      @supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @min = @questionnaire.min_question_score&lt;br /&gt;
    @max = @questionnaire.max_question_score&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire_for_new_response&lt;br /&gt;
    case @map.type&lt;br /&gt;
    when &amp;quot;ReviewResponseMap&amp;quot;, &amp;quot;SelfReviewResponseMap&amp;quot;&lt;br /&gt;
      reviewees_topic = SignedUpTeam.topic_id_by_team_id(@contributor.id)&lt;br /&gt;
      @current_round = @assignment.number_of_current_round(reviewees_topic)&lt;br /&gt;
      @questionnaire = @map.questionnaire(@current_round)&lt;br /&gt;
&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@contributor.id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    when&lt;br /&gt;
      &amp;quot;MetareviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;TeammateReviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;FeedbackResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;CourseSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;AssignmentSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;GlobalSurveyResponseMap&amp;quot;&lt;br /&gt;
      @questionnaire = @map.questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire&lt;br /&gt;
    # if user is not filling a new rubric, the @response object should be available.&lt;br /&gt;
    # we can find the questionnaire from the question_id in answers&lt;br /&gt;
    answer = @response.scores.first&lt;br /&gt;
    @questionnaire = @response.questionnaire_by_answer(answer)&lt;br /&gt;
&lt;br /&gt;
    supplementary_review_answer = @response.scores.last&lt;br /&gt;
    @supplementary_review_questionnaire = @response.questionnaire_by_answer(supplementary_review_answer)&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review responses to &amp;quot;Your Scores&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def view_team&lt;br /&gt;
    @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
    @assignment = @participant.assignment&lt;br /&gt;
    @team = @participant.team&lt;br /&gt;
    @team_id = @team.id&lt;br /&gt;
    @questions = {}&lt;br /&gt;
    questionnaires = @assignment.questionnaires&lt;br /&gt;
    retrieve_questions questionnaires&lt;br /&gt;
    @pscore = @participant.scores(@questions)&lt;br /&gt;
    @vmlist = []&lt;br /&gt;
&lt;br /&gt;
    # loop through each questionnaire, and populate the view model for all data necessary&lt;br /&gt;
    # to render the html tables.&lt;br /&gt;
    counter_for_same_rubric = 0&lt;br /&gt;
    questionnaires.each do |questionnaire|&lt;br /&gt;
      @round = nil&lt;br /&gt;
      if @assignment.varying_rubrics_by_round? &amp;amp;&amp;amp; questionnaire.type == &amp;quot;ReviewQuestionnaire&amp;quot;&lt;br /&gt;
        questionnaires = AssignmentQuestionnaire.where(assignment_id: @assignment.id, questionnaire_id: questionnaire.id)&lt;br /&gt;
        if questionnaires.count &amp;gt; 1&lt;br /&gt;
          @round = questionnaires[counter_for_same_rubric].used_in_round&lt;br /&gt;
          counter_for_same_rubric += 1&lt;br /&gt;
        else&lt;br /&gt;
          @round = questionnaires[0].used_in_round&lt;br /&gt;
          counter_for_same_rubric = 0&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vm = VmQuestionResponse.new(questionnaire, @assignment, @round)&lt;br /&gt;
      supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        unless supplementary_review_questionnaire.nil?&lt;br /&gt;
          supplementary_review_questions = supplementary_review_questionnaire.questions&lt;br /&gt;
          questionnaire.questions += supplementary_review_questions&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vmquestions = questionnaire.questions&lt;br /&gt;
      vm.add_questions(vmquestions)&lt;br /&gt;
      vm.add_team_members(@team)&lt;br /&gt;
      vm.add_reviews(@participant, @team, @assignment.varying_rubrics_by_round?)&lt;br /&gt;
      vm.get_number_of_comments_greater_than_10_words&lt;br /&gt;
      @vmlist &amp;lt;&amp;lt; vm&lt;br /&gt;
    end&lt;br /&gt;
    @current_role_name = current_role_name&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/controllers/questionnaires_controller.rb&lt;br /&gt;
&lt;br /&gt;
Method for creating Supplementary Review Questionnaire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   def create_supplementary_review_questionnaire&lt;br /&gt;
     @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
     @team = Team.find(@participant.team.id)&lt;br /&gt;
     if @team.supplementary_review_questionnaire_id.nil?&lt;br /&gt;
       @questionnaire = Questionnaire.create(privete: false, name: &amp;quot;supplementary_review_questionnaire_&amp;quot; + @team.id.to_s,&lt;br /&gt;
         instructor_id: @team_id, min_question_score: 0, max_question_score: 5, type: &amp;quot;Questionnaire&amp;quot;, display_type: &amp;quot;Review&amp;quot;&lt;br /&gt;
         instruction_loc: Questionnaire::DEFAULT_QUESTIONNAIRE_URL)&lt;br /&gt;
       if @questionnaire.save&lt;br /&gt;
         @team.supplementary_review_questionnaire_id = @questionnaire.id&lt;br /&gt;
         @team.save&lt;br /&gt;
         flash[:success] = 'You have successfully created a rubric!'&lt;br /&gt;
       else&lt;br /&gt;
         flash[:error] = $ERROR_INFO&lt;br /&gt;
       end&lt;br /&gt;
     else&lt;br /&gt;
       @questionnaire = Questionnaire.find(@team.supplementary_review_questionnaire_id)&lt;br /&gt;
     end&lt;br /&gt;
     redirect_to controller: 'questionnaires', action: 'edit', id: @questionnaire.id&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  resources :questionnaires, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :copy&lt;br /&gt;
      get :list&lt;br /&gt;
      post :list_questionnaires&lt;br /&gt;
      get :new_quiz&lt;br /&gt;
      get :select_questionnaire_type&lt;br /&gt;
      post :select_questionnaire_type&lt;br /&gt;
      get :toggle_access&lt;br /&gt;
      get :view&lt;br /&gt;
      post :create_quiz_questionnaire&lt;br /&gt;
      post :update_quiz&lt;br /&gt;
      post :add_new_questions&lt;br /&gt;
      post :save_all_questions&lt;br /&gt;
      post :create_supplementary_review_questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  resources :author_feedback_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :metareview_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :teammate_review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :assignment_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :global_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :course_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :bookmarkrating_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :supplementary_review_questionnaire, controller: :questionnaires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121655</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121655"/>
		<updated>2018-12-18T20:27:08Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Design Strategy''&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
''Changes in the User Interface''&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
Look up the questionnaire ID of a team.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def self.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    team = Team.find(team_id)&lt;br /&gt;
    if team.blank?&lt;br /&gt;
      nil&lt;br /&gt;
    else&lt;br /&gt;
      team.supplementary_review_questionnaire_id&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/supplementary_review_questionnaire.rb&lt;br /&gt;
&lt;br /&gt;
Add the SupplementaryReviewQuestionnaire class which is the subclass of Questionnaire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # This is one type of Questionnaire and  as intuitively expected this model class&lt;br /&gt;
 # derives from Questionnaire.&lt;br /&gt;
 class SupplementaryReviewQuestionnaire &amp;lt; Questionnaire&lt;br /&gt;
   # Make me better.&lt;br /&gt;
   attr_accessible&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
Added supplementary review responses to &amp;quot;Show Review&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def construct_review_response code, self_id, show_tags = nil, current_user = nil&lt;br /&gt;
    code += '&amp;lt;table id=&amp;quot;review_' + self_id + '&amp;quot; style=&amp;quot;display: none;&amp;quot; class=&amp;quot;table table-bordered&amp;quot;&amp;gt;'&lt;br /&gt;
    answers = Answer.where(response_id: self.response_id)&lt;br /&gt;
    team_id = response_map.reviewee_id&lt;br /&gt;
    supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    unless answers.empty?&lt;br /&gt;
      questionnaire = self.questionnaire_by_answer(answers.first)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        supplementary_review_questions = supplementary_review_questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      questionnaire_max = questionnaire.max_question_score&lt;br /&gt;
      questions = questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      # get the tag settings this questionnaire&lt;br /&gt;
      tag_prompt_deployments = show_tags ? TagPromptDeployment.where(questionnaire_id: questionnaire.id, assignment_id: self.map.assignment.id) : nil&lt;br /&gt;
      code = add_table_rows questionnaire_max, questions, answers, code, tag_prompt_deployments, current_user&lt;br /&gt;
    end&lt;br /&gt;
    comment = if !self.additional_comment.nil?&lt;br /&gt;
                self.additional_comment.gsub('^p', '').gsub(/\n/, '&amp;lt;BR/&amp;gt;')&lt;br /&gt;
              else&lt;br /&gt;
                ''&lt;br /&gt;
              end&lt;br /&gt;
    code += '&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Additional Comment: &amp;lt;/b&amp;gt;' + comment + '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;'&lt;br /&gt;
    code += '&amp;lt;/table&amp;gt;'&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Views:&lt;br /&gt;
&lt;br /&gt;
app/views/assignments/edit/_rubrics.html.erb&lt;br /&gt;
&lt;br /&gt;
Add checkbox which professor used to indicate whether students can create their own questions. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!--Add a allow studuent-generated questionnaires checkbox. --&amp;gt;&lt;br /&gt;
 &amp;lt;input name=&amp;quot;assignment_form[assignment][supplementary_review_questionnaire]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;%= check_box_tag('assignment_form[assignment][supplementary_review_questionnaire]', 'true', @assignment_form.assignment.supplementary_review_questionnaire) %&amp;gt;&lt;br /&gt;
 &amp;lt;%= label_tag('assignment_form[assignment][supplementary_review_questionnaire]', 'Allow student-generated questions added to rubric?') %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/views/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
Add code to show the supplementary questions to the reviewers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;br&amp;gt;&lt;br /&gt;
       &amp;lt;% unless @supplementary_review_questions.nil? %&amp;gt;&lt;br /&gt;
       &amp;lt;tr&amp;gt;&lt;br /&gt;
         &amp;lt;td&amp;gt;&lt;br /&gt;
           &amp;lt;h2&amp;gt;Supplementary Review Questions&amp;lt;/h2&amp;gt;&lt;br /&gt;
         &amp;lt;/td&amp;gt;&lt;br /&gt;
       &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% @supplementary_review_questions.each do |question| %&amp;gt;&lt;br /&gt;
         &amp;lt;tr&amp;gt;&lt;br /&gt;
           &amp;lt;td&amp;gt;&lt;br /&gt;
             &amp;lt;% answer = Answer.where(question_id: question.id, response_id: @response.id).first if !@response.nil? %&amp;gt;&lt;br /&gt;
             &amp;lt;% if question.instance_of? Criterion %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score, @dropdown_or_scale) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? Scale %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? UploadFile %&amp;gt;&lt;br /&gt;
             &amp;lt;% else %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer) %&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
           &amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;% if [Criterion, TextArea].include? question.class %&amp;gt;&lt;br /&gt;
                 &amp;lt;div id=&amp;quot;analysis_&amp;lt;%= i.to_s %&amp;gt;_comments&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
         &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% i += 1 %&amp;gt;&lt;br /&gt;
         &amp;lt;% end %&amp;gt;&lt;br /&gt;
       &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/views/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
Add button for &amp;quot;your work&amp;quot; page to let students create their own questions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if stage != &amp;quot;Finished&amp;quot; and controller.controller_name == 'submitted_content' and @can_submit %&amp;gt;&lt;br /&gt;
  &amp;lt;h2&amp;gt;Add Supplementary Review Questions:&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.supplementary_review_questionnaire? %&amp;gt;&lt;br /&gt;
      &amp;lt;%= button_to &amp;quot;Create Supplementary Rubric&amp;quot;, {:controller =&amp;gt; &amp;quot;questionnaires&amp;quot;, :action =&amp;gt; &amp;quot;create_supplementary_review_questionnaire&amp;quot;, :id =&amp;gt; participant.id } %&amp;gt;&lt;br /&gt;
    &amp;lt;% else %&amp;gt;&lt;br /&gt;
      The instructor hasn't enabled this feature for this assignment&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review questionnaires part to the create, edit, update methods and some other methods which getting the questionnaires.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  # Prepare the parameters when student clicks &amp;quot;Edit&amp;quot;&lt;br /&gt;
  def edit&lt;br /&gt;
    assign_instance_vars&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if @prev.present?&lt;br /&gt;
      @sorted = @review_scores.sort {|m1, m2| m1.version_num.to_i &amp;amp;&amp;amp; m2.version_num.to_i ? m2.version_num.to_i &amp;lt;=&amp;gt; m1.version_num.to_i : (m1.version_num ? -1 : 1) }&lt;br /&gt;
      @largest_version_num = @sorted[0]&lt;br /&gt;
    end&lt;br /&gt;
    @modified_object = @response.response_id&lt;br /&gt;
    # set more handy variables for the view&lt;br /&gt;
    set_content&lt;br /&gt;
    @review_scores = []&lt;br /&gt;
    @questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @supplementary_review_questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @questionnaire = set_questionnaire&lt;br /&gt;
    render action: 'response'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Update the response and answers when student &amp;quot;edit&amp;quot; existing response&lt;br /&gt;
  def update&lt;br /&gt;
    render nothing: true unless action_allowed?&lt;br /&gt;
    # the response to be updated&lt;br /&gt;
    @response = Response.find(params[:id])&lt;br /&gt;
    msg = &amp;quot;&amp;quot;&lt;br /&gt;
    begin&lt;br /&gt;
      @map = @response.map&lt;br /&gt;
      @response.update_attribute('additional_comment', params[:review][:comments])&lt;br /&gt;
&lt;br /&gt;
      set_questionnaire&lt;br /&gt;
      questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
      create_answers(params, questions) unless params[:responses].nil?&lt;br /&gt;
&lt;br /&gt;
      @response.update_attribute('is_submitted', true) if params['isSubmit'] &amp;amp;&amp;amp; params['isSubmit'] == 'Yes'&lt;br /&gt;
      @response.notify_instructor_on_difference if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; @response.is_submitted &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
    rescue StandardError&lt;br /&gt;
      msg = &amp;quot;Your response was not saved. Cause:189 #{$ERROR_INFO}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    ExpertizaLogger.info LoggerMessage.new(controller_name, session[:user].name, &amp;quot;Your response was submitted: #{@response.is_submitted}&amp;quot;, request)&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
 def create&lt;br /&gt;
    map_id = params[:id]&lt;br /&gt;
    map_id = params[:map_id] unless params[:map_id].nil? # pass map_id as a hidden field in the review form&lt;br /&gt;
    @map = ResponseMap.find(map_id)&lt;br /&gt;
    @team_id = @map.reviewee_id&lt;br /&gt;
&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if params[:review][:questionnaire_id]&lt;br /&gt;
      @questionnaire = Questionnaire.find(params[:review][:questionnaire_id])&lt;br /&gt;
      @round = params[:review][:round]&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      @round = nil&lt;br /&gt;
    end&lt;br /&gt;
    is_submitted = (params[:isSubmit] == 'Yes')&lt;br /&gt;
    was_submitted = false&lt;br /&gt;
    @response = Response.where(map_id: @map.id, round: @round.to_i).first&lt;br /&gt;
    if @response.nil?&lt;br /&gt;
      @response = Response.create(&lt;br /&gt;
        map_id: @map.id,&lt;br /&gt;
        additional_comment: params[:review][:comments],&lt;br /&gt;
        round: @round.to_i,&lt;br /&gt;
        is_submitted: is_submitted&lt;br /&gt;
      )&lt;br /&gt;
    end&lt;br /&gt;
    was_submitted = @response.is_submitted&lt;br /&gt;
    @response.update(additional_comment: params[:review][:comments], is_submitted: is_submitted) # ignore if autoupdate try to save when the response object is not yet created.&lt;br /&gt;
&lt;br /&gt;
    # ,:version_num=&amp;gt;@version)&lt;br /&gt;
    # Change the order for displaying questions for editing response views.&lt;br /&gt;
    questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      questions += supplementary_review_questions&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    create_answers(params, questions) if params[:responses]&lt;br /&gt;
    msg = &amp;quot;Your response was successfully saved.&amp;quot;&lt;br /&gt;
    error_msg = &amp;quot;&amp;quot;&lt;br /&gt;
    # only notify if is_submitted changes from false to true&lt;br /&gt;
    if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; (was_submitted == false &amp;amp;&amp;amp; @response.is_submitted) &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
      @response.notify_instructor_on_difference&lt;br /&gt;
      @response.email&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, error_msg: error_msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # new_response if a flag parameter indicating that if user is requesting a new rubric to fill&lt;br /&gt;
  # if true: we figure out which questionnaire to use based on current time and records in assignment_questionnaires table&lt;br /&gt;
  # e.g. student click &amp;quot;Begin&amp;quot; or &amp;quot;Update&amp;quot; to start filling out a rubric for others' work&lt;br /&gt;
  # if false: we figure out which questionnaire to display base on @response object&lt;br /&gt;
  # e.g. student click &amp;quot;Edit&amp;quot; or &amp;quot;View&amp;quot;&lt;br /&gt;
  def set_content(new_response = false)&lt;br /&gt;
    @title = @map.get_title&lt;br /&gt;
    if @map.survey?&lt;br /&gt;
      @survey_parent = @map.survey_parent&lt;br /&gt;
    else&lt;br /&gt;
      @assignment = @map.assignment&lt;br /&gt;
    end&lt;br /&gt;
    @participant = @map.reviewer&lt;br /&gt;
    @contributor = @map.contributor&lt;br /&gt;
    new_response ? set_questionnaire_for_new_response : set_questionnaire&lt;br /&gt;
    set_dropdown_or_scale&lt;br /&gt;
    @questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      @supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @min = @questionnaire.min_question_score&lt;br /&gt;
    @max = @questionnaire.max_question_score&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire_for_new_response&lt;br /&gt;
    case @map.type&lt;br /&gt;
    when &amp;quot;ReviewResponseMap&amp;quot;, &amp;quot;SelfReviewResponseMap&amp;quot;&lt;br /&gt;
      reviewees_topic = SignedUpTeam.topic_id_by_team_id(@contributor.id)&lt;br /&gt;
      @current_round = @assignment.number_of_current_round(reviewees_topic)&lt;br /&gt;
      @questionnaire = @map.questionnaire(@current_round)&lt;br /&gt;
&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@contributor.id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    when&lt;br /&gt;
      &amp;quot;MetareviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;TeammateReviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;FeedbackResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;CourseSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;AssignmentSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;GlobalSurveyResponseMap&amp;quot;&lt;br /&gt;
      @questionnaire = @map.questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire&lt;br /&gt;
    # if user is not filling a new rubric, the @response object should be available.&lt;br /&gt;
    # we can find the questionnaire from the question_id in answers&lt;br /&gt;
    answer = @response.scores.first&lt;br /&gt;
    @questionnaire = @response.questionnaire_by_answer(answer)&lt;br /&gt;
&lt;br /&gt;
    supplementary_review_answer = @response.scores.last&lt;br /&gt;
    @supplementary_review_questionnaire = @response.questionnaire_by_answer(supplementary_review_answer)&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
Add supplementary review responses to &amp;quot;Your Scores&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def view_team&lt;br /&gt;
    @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
    @assignment = @participant.assignment&lt;br /&gt;
    @team = @participant.team&lt;br /&gt;
    @team_id = @team.id&lt;br /&gt;
    @questions = {}&lt;br /&gt;
    questionnaires = @assignment.questionnaires&lt;br /&gt;
    retrieve_questions questionnaires&lt;br /&gt;
    @pscore = @participant.scores(@questions)&lt;br /&gt;
    @vmlist = []&lt;br /&gt;
&lt;br /&gt;
    # loop through each questionnaire, and populate the view model for all data necessary&lt;br /&gt;
    # to render the html tables.&lt;br /&gt;
    counter_for_same_rubric = 0&lt;br /&gt;
    questionnaires.each do |questionnaire|&lt;br /&gt;
      @round = nil&lt;br /&gt;
      if @assignment.varying_rubrics_by_round? &amp;amp;&amp;amp; questionnaire.type == &amp;quot;ReviewQuestionnaire&amp;quot;&lt;br /&gt;
        questionnaires = AssignmentQuestionnaire.where(assignment_id: @assignment.id, questionnaire_id: questionnaire.id)&lt;br /&gt;
        if questionnaires.count &amp;gt; 1&lt;br /&gt;
          @round = questionnaires[counter_for_same_rubric].used_in_round&lt;br /&gt;
          counter_for_same_rubric += 1&lt;br /&gt;
        else&lt;br /&gt;
          @round = questionnaires[0].used_in_round&lt;br /&gt;
          counter_for_same_rubric = 0&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vm = VmQuestionResponse.new(questionnaire, @assignment, @round)&lt;br /&gt;
      supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        unless supplementary_review_questionnaire.nil?&lt;br /&gt;
          supplementary_review_questions = supplementary_review_questionnaire.questions&lt;br /&gt;
          questionnaire.questions += supplementary_review_questions&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vmquestions = questionnaire.questions&lt;br /&gt;
      vm.add_questions(vmquestions)&lt;br /&gt;
      vm.add_team_members(@team)&lt;br /&gt;
      vm.add_reviews(@participant, @team, @assignment.varying_rubrics_by_round?)&lt;br /&gt;
      vm.get_number_of_comments_greater_than_10_words&lt;br /&gt;
      @vmlist &amp;lt;&amp;lt; vm&lt;br /&gt;
    end&lt;br /&gt;
    @current_role_name = current_role_name&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/controllers/questionnaires_controller.rb&lt;br /&gt;
&lt;br /&gt;
Method for creating Supplementary Review Questionnaire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   def create_supplementary_review_questionnaire&lt;br /&gt;
     @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
     @team = Team.find(@participant.team.id)&lt;br /&gt;
     if @team.supplementary_review_questionnaire_id.nil?&lt;br /&gt;
       @questionnaire = Questionnaire.create(privete: false, name: &amp;quot;supplementary_review_questionnaire_&amp;quot; + @team.id.to_s,&lt;br /&gt;
         instructor_id: @team_id, min_question_score: 0, max_question_score: 5, type: &amp;quot;Questionnaire&amp;quot;, display_type: &amp;quot;Review&amp;quot;&lt;br /&gt;
         instruction_loc: Questionnaire::DEFAULT_QUESTIONNAIRE_URL)&lt;br /&gt;
       if @questionnaire.save&lt;br /&gt;
         @team.supplementary_review_questionnaire_id = @questionnaire.id&lt;br /&gt;
         @team.save&lt;br /&gt;
         flash[:success] = 'You have successfully created a rubric!'&lt;br /&gt;
       else&lt;br /&gt;
         flash[:error] = $ERROR_INFO&lt;br /&gt;
       end&lt;br /&gt;
     else&lt;br /&gt;
       @questionnaire = Questionnaire.find(@team.supplementary_review_questionnaire_id)&lt;br /&gt;
     end&lt;br /&gt;
     redirect_to controller: 'questionnaires', action: 'edit', id: @questionnaire.id&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  resources :questionnaires, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :copy&lt;br /&gt;
      get :list&lt;br /&gt;
      post :list_questionnaires&lt;br /&gt;
      get :new_quiz&lt;br /&gt;
      get :select_questionnaire_type&lt;br /&gt;
      post :select_questionnaire_type&lt;br /&gt;
      get :toggle_access&lt;br /&gt;
      get :view&lt;br /&gt;
      post :create_quiz_questionnaire&lt;br /&gt;
      post :update_quiz&lt;br /&gt;
      post :add_new_questions&lt;br /&gt;
      post :save_all_questions&lt;br /&gt;
      post :create_supplementary_review_questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  resources :author_feedback_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :metareview_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :teammate_review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :assignment_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :global_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :course_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :bookmarkrating_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :supplementary_review_questionnaire, controller: :questionnaires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121648</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121648"/>
		<updated>2018-12-18T18:38:07Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Design Strategy''&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
''Changes in the User Interface''&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def self.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    team = Team.find(team_id)&lt;br /&gt;
    if team.blank?&lt;br /&gt;
      nil&lt;br /&gt;
    else&lt;br /&gt;
      team.supplementary_review_questionnaire_id&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def construct_review_response code, self_id, show_tags = nil, current_user = nil&lt;br /&gt;
    code += '&amp;lt;table id=&amp;quot;review_' + self_id + '&amp;quot; style=&amp;quot;display: none;&amp;quot; class=&amp;quot;table table-bordered&amp;quot;&amp;gt;'&lt;br /&gt;
    answers = Answer.where(response_id: self.response_id)&lt;br /&gt;
    team_id = response_map.reviewee_id&lt;br /&gt;
    supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    unless answers.empty?&lt;br /&gt;
      questionnaire = self.questionnaire_by_answer(answers.first)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        supplementary_review_questions = supplementary_review_questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      questionnaire_max = questionnaire.max_question_score&lt;br /&gt;
      questions = questionnaire.questions.sort_by(&amp;amp;:seq)&lt;br /&gt;
&lt;br /&gt;
      unless supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      # get the tag settings this questionnaire&lt;br /&gt;
      tag_prompt_deployments = show_tags ? TagPromptDeployment.where(questionnaire_id: questionnaire.id, assignment_id: self.map.assignment.id) : nil&lt;br /&gt;
      code = add_table_rows questionnaire_max, questions, answers, code, tag_prompt_deployments, current_user&lt;br /&gt;
    end&lt;br /&gt;
    comment = if !self.additional_comment.nil?&lt;br /&gt;
                self.additional_comment.gsub('^p', '').gsub(/\n/, '&amp;lt;BR/&amp;gt;')&lt;br /&gt;
              else&lt;br /&gt;
                ''&lt;br /&gt;
              end&lt;br /&gt;
    code += '&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Additional Comment: &amp;lt;/b&amp;gt;' + comment + '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;'&lt;br /&gt;
    code += '&amp;lt;/table&amp;gt;'&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/views/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/views/response/response.html.erb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;br&amp;gt;&lt;br /&gt;
       &amp;lt;% unless @supplementary_review_questions.nil? %&amp;gt;&lt;br /&gt;
       &amp;lt;tr&amp;gt;&lt;br /&gt;
         &amp;lt;td&amp;gt;&lt;br /&gt;
           &amp;lt;h2&amp;gt;Supplementary Review Questions&amp;lt;/h2&amp;gt;&lt;br /&gt;
         &amp;lt;/td&amp;gt;&lt;br /&gt;
       &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% @supplementary_review_questions.each do |question| %&amp;gt;&lt;br /&gt;
         &amp;lt;tr&amp;gt;&lt;br /&gt;
           &amp;lt;td&amp;gt;&lt;br /&gt;
             &amp;lt;% answer = Answer.where(question_id: question.id, response_id: @response.id).first if !@response.nil? %&amp;gt;&lt;br /&gt;
             &amp;lt;% if question.instance_of? Criterion %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score, @dropdown_or_scale) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? Scale %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer, @questionnaire.min_question_score, @questionnaire.max_question_score) %&amp;gt;&lt;br /&gt;
               &amp;lt;%= tinymce %&amp;gt;&lt;br /&gt;
             &amp;lt;% elsif question.instance_of? UploadFile %&amp;gt;&lt;br /&gt;
             &amp;lt;% else %&amp;gt;&lt;br /&gt;
               &amp;lt;%= question.complete(i, answer) %&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
           &amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;% if [Criterion, TextArea].include? question.class %&amp;gt;&lt;br /&gt;
                 &amp;lt;div id=&amp;quot;analysis_&amp;lt;%= i.to_s %&amp;gt;_comments&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
             &amp;lt;% end %&amp;gt;&lt;br /&gt;
           &amp;lt;/td&amp;gt;&lt;br /&gt;
         &amp;lt;/tr&amp;gt;&lt;br /&gt;
         &amp;lt;% i += 1 %&amp;gt;&lt;br /&gt;
         &amp;lt;% end %&amp;gt;&lt;br /&gt;
       &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/views/submitted_content/_main.html.erb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if stage != &amp;quot;Finished&amp;quot; and controller.controller_name == 'submitted_content' and @can_submit %&amp;gt;&lt;br /&gt;
  &amp;lt;h2&amp;gt;Add Supplementary Review Questions:&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;% if @assignment.supplementary_review_questionnaire? %&amp;gt;&lt;br /&gt;
      &amp;lt;%= button_to &amp;quot;Create Supplementary Rubric&amp;quot;, {:controller =&amp;gt; &amp;quot;questionnaires&amp;quot;, :action =&amp;gt; &amp;quot;create_supplementary_review_questionnaire&amp;quot;, :id =&amp;gt; participant.id } %&amp;gt;&lt;br /&gt;
    &amp;lt;% else %&amp;gt;&lt;br /&gt;
      The instructor hasn't enabled this feature for this assignment&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  # Prepare the parameters when student clicks &amp;quot;Edit&amp;quot;&lt;br /&gt;
  def edit&lt;br /&gt;
    assign_instance_vars&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if @prev.present?&lt;br /&gt;
      @sorted = @review_scores.sort {|m1, m2| m1.version_num.to_i &amp;amp;&amp;amp; m2.version_num.to_i ? m2.version_num.to_i &amp;lt;=&amp;gt; m1.version_num.to_i : (m1.version_num ? -1 : 1) }&lt;br /&gt;
      @largest_version_num = @sorted[0]&lt;br /&gt;
    end&lt;br /&gt;
    @modified_object = @response.response_id&lt;br /&gt;
    # set more handy variables for the view&lt;br /&gt;
    set_content&lt;br /&gt;
    @review_scores = []&lt;br /&gt;
    @questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @supplementary_review_questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @questionnaire = set_questionnaire&lt;br /&gt;
    render action: 'response'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Update the response and answers when student &amp;quot;edit&amp;quot; existing response&lt;br /&gt;
  def update&lt;br /&gt;
    render nothing: true unless action_allowed?&lt;br /&gt;
    # the response to be updated&lt;br /&gt;
    @response = Response.find(params[:id])&lt;br /&gt;
    msg = &amp;quot;&amp;quot;&lt;br /&gt;
    begin&lt;br /&gt;
      @map = @response.map&lt;br /&gt;
      @response.update_attribute('additional_comment', params[:review][:comments])&lt;br /&gt;
&lt;br /&gt;
      set_questionnaire&lt;br /&gt;
      questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
      create_answers(params, questions) unless params[:responses].nil?&lt;br /&gt;
&lt;br /&gt;
      @response.update_attribute('is_submitted', true) if params['isSubmit'] &amp;amp;&amp;amp; params['isSubmit'] == 'Yes'&lt;br /&gt;
      @response.notify_instructor_on_difference if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; @response.is_submitted &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
    rescue StandardError&lt;br /&gt;
      msg = &amp;quot;Your response was not saved. Cause:189 #{$ERROR_INFO}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    ExpertizaLogger.info LoggerMessage.new(controller_name, session[:user].name, &amp;quot;Your response was submitted: #{@response.is_submitted}&amp;quot;, request)&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
 def create&lt;br /&gt;
    map_id = params[:id]&lt;br /&gt;
    map_id = params[:map_id] unless params[:map_id].nil? # pass map_id as a hidden field in the review form&lt;br /&gt;
    @map = ResponseMap.find(map_id)&lt;br /&gt;
    @team_id = @map.reviewee_id&lt;br /&gt;
&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if params[:review][:questionnaire_id]&lt;br /&gt;
      @questionnaire = Questionnaire.find(params[:review][:questionnaire_id])&lt;br /&gt;
      @round = params[:review][:round]&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      @round = nil&lt;br /&gt;
    end&lt;br /&gt;
    is_submitted = (params[:isSubmit] == 'Yes')&lt;br /&gt;
    was_submitted = false&lt;br /&gt;
    @response = Response.where(map_id: @map.id, round: @round.to_i).first&lt;br /&gt;
    if @response.nil?&lt;br /&gt;
      @response = Response.create(&lt;br /&gt;
        map_id: @map.id,&lt;br /&gt;
        additional_comment: params[:review][:comments],&lt;br /&gt;
        round: @round.to_i,&lt;br /&gt;
        is_submitted: is_submitted&lt;br /&gt;
      )&lt;br /&gt;
    end&lt;br /&gt;
    was_submitted = @response.is_submitted&lt;br /&gt;
    @response.update(additional_comment: params[:review][:comments], is_submitted: is_submitted) # ignore if autoupdate try to save when the response object is not yet created.&lt;br /&gt;
&lt;br /&gt;
    # ,:version_num=&amp;gt;@version)&lt;br /&gt;
    # Change the order for displaying questions for editing response views.&lt;br /&gt;
    questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      questions += supplementary_review_questions&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    create_answers(params, questions) if params[:responses]&lt;br /&gt;
    msg = &amp;quot;Your response was successfully saved.&amp;quot;&lt;br /&gt;
    error_msg = &amp;quot;&amp;quot;&lt;br /&gt;
    # only notify if is_submitted changes from false to true&lt;br /&gt;
    if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; (was_submitted == false &amp;amp;&amp;amp; @response.is_submitted) &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
      @response.notify_instructor_on_difference&lt;br /&gt;
      @response.email&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, error_msg: error_msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # new_response if a flag parameter indicating that if user is requesting a new rubric to fill&lt;br /&gt;
  # if true: we figure out which questionnaire to use based on current time and records in assignment_questionnaires table&lt;br /&gt;
  # e.g. student click &amp;quot;Begin&amp;quot; or &amp;quot;Update&amp;quot; to start filling out a rubric for others' work&lt;br /&gt;
  # if false: we figure out which questionnaire to display base on @response object&lt;br /&gt;
  # e.g. student click &amp;quot;Edit&amp;quot; or &amp;quot;View&amp;quot;&lt;br /&gt;
  def set_content(new_response = false)&lt;br /&gt;
    @title = @map.get_title&lt;br /&gt;
    if @map.survey?&lt;br /&gt;
      @survey_parent = @map.survey_parent&lt;br /&gt;
    else&lt;br /&gt;
      @assignment = @map.assignment&lt;br /&gt;
    end&lt;br /&gt;
    @participant = @map.reviewer&lt;br /&gt;
    @contributor = @map.contributor&lt;br /&gt;
    new_response ? set_questionnaire_for_new_response : set_questionnaire&lt;br /&gt;
    set_dropdown_or_scale&lt;br /&gt;
    @questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      @supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @min = @questionnaire.min_question_score&lt;br /&gt;
    @max = @questionnaire.max_question_score&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire_for_new_response&lt;br /&gt;
    case @map.type&lt;br /&gt;
    when &amp;quot;ReviewResponseMap&amp;quot;, &amp;quot;SelfReviewResponseMap&amp;quot;&lt;br /&gt;
      reviewees_topic = SignedUpTeam.topic_id_by_team_id(@contributor.id)&lt;br /&gt;
      @current_round = @assignment.number_of_current_round(reviewees_topic)&lt;br /&gt;
      @questionnaire = @map.questionnaire(@current_round)&lt;br /&gt;
&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@contributor.id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    when&lt;br /&gt;
      &amp;quot;MetareviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;TeammateReviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;FeedbackResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;CourseSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;AssignmentSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;GlobalSurveyResponseMap&amp;quot;&lt;br /&gt;
      @questionnaire = @map.questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire&lt;br /&gt;
    # if user is not filling a new rubric, the @response object should be available.&lt;br /&gt;
    # we can find the questionnaire from the question_id in answers&lt;br /&gt;
    answer = @response.scores.first&lt;br /&gt;
    @questionnaire = @response.questionnaire_by_answer(answer)&lt;br /&gt;
&lt;br /&gt;
    supplementary_review_answer = @response.scores.last&lt;br /&gt;
    @supplementary_review_questionnaire = @response.questionnaire_by_answer(supplementary_review_answer)&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def view_team&lt;br /&gt;
    @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
    @assignment = @participant.assignment&lt;br /&gt;
    @team = @participant.team&lt;br /&gt;
    @team_id = @team.id&lt;br /&gt;
    @questions = {}&lt;br /&gt;
    questionnaires = @assignment.questionnaires&lt;br /&gt;
    retrieve_questions questionnaires&lt;br /&gt;
    @pscore = @participant.scores(@questions)&lt;br /&gt;
    @vmlist = []&lt;br /&gt;
&lt;br /&gt;
    # loop through each questionnaire, and populate the view model for all data necessary&lt;br /&gt;
    # to render the html tables.&lt;br /&gt;
    counter_for_same_rubric = 0&lt;br /&gt;
    questionnaires.each do |questionnaire|&lt;br /&gt;
      @round = nil&lt;br /&gt;
      if @assignment.varying_rubrics_by_round? &amp;amp;&amp;amp; questionnaire.type == &amp;quot;ReviewQuestionnaire&amp;quot;&lt;br /&gt;
        questionnaires = AssignmentQuestionnaire.where(assignment_id: @assignment.id, questionnaire_id: questionnaire.id)&lt;br /&gt;
        if questionnaires.count &amp;gt; 1&lt;br /&gt;
          @round = questionnaires[counter_for_same_rubric].used_in_round&lt;br /&gt;
          counter_for_same_rubric += 1&lt;br /&gt;
        else&lt;br /&gt;
          @round = questionnaires[0].used_in_round&lt;br /&gt;
          counter_for_same_rubric = 0&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vm = VmQuestionResponse.new(questionnaire, @assignment, @round)&lt;br /&gt;
      supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        unless supplementary_review_questionnaire.nil?&lt;br /&gt;
          supplementary_review_questions = supplementary_review_questionnaire.questions&lt;br /&gt;
          questionnaire.questions += supplementary_review_questions&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vmquestions = questionnaire.questions&lt;br /&gt;
      vm.add_questions(vmquestions)&lt;br /&gt;
      vm.add_team_members(@team)&lt;br /&gt;
      vm.add_reviews(@participant, @team, @assignment.varying_rubrics_by_round?)&lt;br /&gt;
      vm.get_number_of_comments_greater_than_10_words&lt;br /&gt;
      @vmlist &amp;lt;&amp;lt; vm&lt;br /&gt;
    end&lt;br /&gt;
    @current_role_name = current_role_name&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/controllers/questionnaires_controller.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   def create_supplementary_review_questionnaire&lt;br /&gt;
     @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
     @team = Team.find(@participant.team.id)&lt;br /&gt;
     if @team.supplementary_review_questionnaire_id.nil?&lt;br /&gt;
       @questionnaire = Questionnaire.create(privete: false, name: &amp;quot;supplementary_review_questionnaire_&amp;quot; + @team.id.to_s,&lt;br /&gt;
         instructor_id: @team_id, min_question_score: 0, max_question_score: 5, type: &amp;quot;Questionnaire&amp;quot;, display_type: &amp;quot;Review&amp;quot;&lt;br /&gt;
         instruction_loc: Questionnaire::DEFAULT_QUESTIONNAIRE_URL)&lt;br /&gt;
       if @questionnaire.save&lt;br /&gt;
         @team.supplementary_review_questionnaire_id = @questionnaire.id&lt;br /&gt;
         @team.save&lt;br /&gt;
         flash[:success] = 'You have successfully created a rubric!'&lt;br /&gt;
       else&lt;br /&gt;
         flash[:error] = $ERROR_INFO&lt;br /&gt;
       end&lt;br /&gt;
     else&lt;br /&gt;
       @questionnaire = Questionnaire.find(@team.supplementary_review_questionnaire_id)&lt;br /&gt;
     end&lt;br /&gt;
     redirect_to controller: 'questionnaires', action: 'edit', id: @questionnaire.id&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  resources :questionnaires, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :copy&lt;br /&gt;
      get :list&lt;br /&gt;
      post :list_questionnaires&lt;br /&gt;
      get :new_quiz&lt;br /&gt;
      get :select_questionnaire_type&lt;br /&gt;
      post :select_questionnaire_type&lt;br /&gt;
      get :toggle_access&lt;br /&gt;
      get :view&lt;br /&gt;
      post :create_quiz_questionnaire&lt;br /&gt;
      post :update_quiz&lt;br /&gt;
      post :add_new_questions&lt;br /&gt;
      post :save_all_questions&lt;br /&gt;
      post :create_supplementary_review_questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  resources :author_feedback_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :metareview_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :teammate_review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :assignment_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :global_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :course_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :bookmarkrating_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :supplementary_review_questionnaire, controller: :questionnaires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121639</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121639"/>
		<updated>2018-12-18T18:31:11Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Design Strategy''&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
''Changes in the User Interface''&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def self.get_supplementary_review_questionnaire_id_of_team(team_id)&lt;br /&gt;
    team = Team.find(team_id)&lt;br /&gt;
    if team.blank?&lt;br /&gt;
      nil&lt;br /&gt;
    else&lt;br /&gt;
      team.supplementary_review_questionnaire_id&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  # Prepare the parameters when student clicks &amp;quot;Edit&amp;quot;&lt;br /&gt;
  def edit&lt;br /&gt;
    assign_instance_vars&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if @prev.present?&lt;br /&gt;
      @sorted = @review_scores.sort {|m1, m2| m1.version_num.to_i &amp;amp;&amp;amp; m2.version_num.to_i ? m2.version_num.to_i &amp;lt;=&amp;gt; m1.version_num.to_i : (m1.version_num ? -1 : 1) }&lt;br /&gt;
      @largest_version_num = @sorted[0]&lt;br /&gt;
    end&lt;br /&gt;
    @modified_object = @response.response_id&lt;br /&gt;
    # set more handy variables for the view&lt;br /&gt;
    set_content&lt;br /&gt;
    @review_scores = []&lt;br /&gt;
    @questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @supplementary_review_questions.each do |question|&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; Answer.where(response_id: @response.response_id, question_id: question.id).first&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @questionnaire = set_questionnaire&lt;br /&gt;
    render action: 'response'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Update the response and answers when student &amp;quot;edit&amp;quot; existing response&lt;br /&gt;
  def update&lt;br /&gt;
    render nothing: true unless action_allowed?&lt;br /&gt;
    # the response to be updated&lt;br /&gt;
    @response = Response.find(params[:id])&lt;br /&gt;
    msg = &amp;quot;&amp;quot;&lt;br /&gt;
    begin&lt;br /&gt;
      @map = @response.map&lt;br /&gt;
      @response.update_attribute('additional_comment', params[:review][:comments])&lt;br /&gt;
&lt;br /&gt;
      set_questionnaire&lt;br /&gt;
      questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
        questions += supplementary_review_questions&lt;br /&gt;
      end&lt;br /&gt;
      create_answers(params, questions) unless params[:responses].nil?&lt;br /&gt;
&lt;br /&gt;
      @response.update_attribute('is_submitted', true) if params['isSubmit'] &amp;amp;&amp;amp; params['isSubmit'] == 'Yes'&lt;br /&gt;
      @response.notify_instructor_on_difference if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; @response.is_submitted &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
    rescue StandardError&lt;br /&gt;
      msg = &amp;quot;Your response was not saved. Cause:189 #{$ERROR_INFO}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    ExpertizaLogger.info LoggerMessage.new(controller_name, session[:user].name, &amp;quot;Your response was submitted: #{@response.is_submitted}&amp;quot;, request)&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
 def create&lt;br /&gt;
    map_id = params[:id]&lt;br /&gt;
    map_id = params[:map_id] unless params[:map_id].nil? # pass map_id as a hidden field in the review form&lt;br /&gt;
    @map = ResponseMap.find(map_id)&lt;br /&gt;
    @team_id = @map.reviewee_id&lt;br /&gt;
&lt;br /&gt;
    get_all_responses&lt;br /&gt;
    if params[:review][:questionnaire_id]&lt;br /&gt;
      @questionnaire = Questionnaire.find(params[:review][:questionnaire_id])&lt;br /&gt;
      @round = params[:review][:round]&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      @round = nil&lt;br /&gt;
    end&lt;br /&gt;
    is_submitted = (params[:isSubmit] == 'Yes')&lt;br /&gt;
    was_submitted = false&lt;br /&gt;
    @response = Response.where(map_id: @map.id, round: @round.to_i).first&lt;br /&gt;
    if @response.nil?&lt;br /&gt;
      @response = Response.create(&lt;br /&gt;
        map_id: @map.id,&lt;br /&gt;
        additional_comment: params[:review][:comments],&lt;br /&gt;
        round: @round.to_i,&lt;br /&gt;
        is_submitted: is_submitted&lt;br /&gt;
      )&lt;br /&gt;
    end&lt;br /&gt;
    was_submitted = @response.is_submitted&lt;br /&gt;
    @response.update(additional_comment: params[:review][:comments], is_submitted: is_submitted) # ignore if autoupdate try to save when the response object is not yet created.&lt;br /&gt;
&lt;br /&gt;
    # ,:version_num=&amp;gt;@version)&lt;br /&gt;
    # Change the order for displaying questions for editing response views.&lt;br /&gt;
    questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
      questions += supplementary_review_questions&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    create_answers(params, questions) if params[:responses]&lt;br /&gt;
    msg = &amp;quot;Your response was successfully saved.&amp;quot;&lt;br /&gt;
    error_msg = &amp;quot;&amp;quot;&lt;br /&gt;
    # only notify if is_submitted changes from false to true&lt;br /&gt;
    if (@map.is_a? ReviewResponseMap) &amp;amp;&amp;amp; (was_submitted == false &amp;amp;&amp;amp; @response.is_submitted) &amp;amp;&amp;amp; @response.significant_difference?&lt;br /&gt;
      @response.notify_instructor_on_difference&lt;br /&gt;
      @response.email&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'response', action: 'save', id: @map.map_id,&lt;br /&gt;
                return: params[:return], msg: msg, error_msg: error_msg, review: params[:review], save_options: params[:save_options]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # new_response if a flag parameter indicating that if user is requesting a new rubric to fill&lt;br /&gt;
  # if true: we figure out which questionnaire to use based on current time and records in assignment_questionnaires table&lt;br /&gt;
  # e.g. student click &amp;quot;Begin&amp;quot; or &amp;quot;Update&amp;quot; to start filling out a rubric for others' work&lt;br /&gt;
  # if false: we figure out which questionnaire to display base on @response object&lt;br /&gt;
  # e.g. student click &amp;quot;Edit&amp;quot; or &amp;quot;View&amp;quot;&lt;br /&gt;
  def set_content(new_response = false)&lt;br /&gt;
    @title = @map.get_title&lt;br /&gt;
    if @map.survey?&lt;br /&gt;
      @survey_parent = @map.survey_parent&lt;br /&gt;
    else&lt;br /&gt;
      @assignment = @map.assignment&lt;br /&gt;
    end&lt;br /&gt;
    @participant = @map.reviewer&lt;br /&gt;
    @contributor = @map.contributor&lt;br /&gt;
    new_response ? set_questionnaire_for_new_response : set_questionnaire&lt;br /&gt;
    set_dropdown_or_scale&lt;br /&gt;
    @questions = sort_questions(@questionnaire.questions)&lt;br /&gt;
&lt;br /&gt;
    unless @supplementary_review_questionnaire.nil?&lt;br /&gt;
      @supplementary_review_questions = sort_questions(@supplementary_review_questionnaire.questions)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    @min = @questionnaire.min_question_score&lt;br /&gt;
    @max = @questionnaire.max_question_score&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire_for_new_response&lt;br /&gt;
    case @map.type&lt;br /&gt;
    when &amp;quot;ReviewResponseMap&amp;quot;, &amp;quot;SelfReviewResponseMap&amp;quot;&lt;br /&gt;
      reviewees_topic = SignedUpTeam.topic_id_by_team_id(@contributor.id)&lt;br /&gt;
      @current_round = @assignment.number_of_current_round(reviewees_topic)&lt;br /&gt;
      @questionnaire = @map.questionnaire(@current_round)&lt;br /&gt;
&lt;br /&gt;
      @supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@contributor.id)&lt;br /&gt;
      unless @supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        @supplementary_review_questionnaire = Questionnaire.find(@supplementary_review_questionnaire_id)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    when&lt;br /&gt;
      &amp;quot;MetareviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;TeammateReviewResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;FeedbackResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;CourseSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;AssignmentSurveyResponseMap&amp;quot;,&lt;br /&gt;
      &amp;quot;GlobalSurveyResponseMap&amp;quot;&lt;br /&gt;
      @questionnaire = @map.questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_questionnaire&lt;br /&gt;
    # if user is not filling a new rubric, the @response object should be available.&lt;br /&gt;
    # we can find the questionnaire from the question_id in answers&lt;br /&gt;
    answer = @response.scores.first&lt;br /&gt;
    @questionnaire = @response.questionnaire_by_answer(answer)&lt;br /&gt;
&lt;br /&gt;
    supplementary_review_answer = @response.scores.last&lt;br /&gt;
    @supplementary_review_questionnaire = @response.questionnaire_by_answer(supplementary_review_answer)&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def view_team&lt;br /&gt;
    @participant = AssignmentParticipant.find(params[:id])&lt;br /&gt;
    @assignment = @participant.assignment&lt;br /&gt;
    @team = @participant.team&lt;br /&gt;
    @team_id = @team.id&lt;br /&gt;
    @questions = {}&lt;br /&gt;
    questionnaires = @assignment.questionnaires&lt;br /&gt;
    retrieve_questions questionnaires&lt;br /&gt;
    @pscore = @participant.scores(@questions)&lt;br /&gt;
    @vmlist = []&lt;br /&gt;
&lt;br /&gt;
    # loop through each questionnaire, and populate the view model for all data necessary&lt;br /&gt;
    # to render the html tables.&lt;br /&gt;
    counter_for_same_rubric = 0&lt;br /&gt;
    questionnaires.each do |questionnaire|&lt;br /&gt;
      @round = nil&lt;br /&gt;
      if @assignment.varying_rubrics_by_round? &amp;amp;&amp;amp; questionnaire.type == &amp;quot;ReviewQuestionnaire&amp;quot;&lt;br /&gt;
        questionnaires = AssignmentQuestionnaire.where(assignment_id: @assignment.id, questionnaire_id: questionnaire.id)&lt;br /&gt;
        if questionnaires.count &amp;gt; 1&lt;br /&gt;
          @round = questionnaires[counter_for_same_rubric].used_in_round&lt;br /&gt;
          counter_for_same_rubric += 1&lt;br /&gt;
        else&lt;br /&gt;
          @round = questionnaires[0].used_in_round&lt;br /&gt;
          counter_for_same_rubric = 0&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vm = VmQuestionResponse.new(questionnaire, @assignment, @round)&lt;br /&gt;
      supplementary_review_questionnaire_id = Team.get_supplementary_review_questionnaire_id_of_team(@team_id)&lt;br /&gt;
      unless supplementary_review_questionnaire_id.nil?&lt;br /&gt;
        supplementary_review_questionnaire = Questionnaire.find(supplementary_review_questionnaire_id)&lt;br /&gt;
        unless supplementary_review_questionnaire.nil?&lt;br /&gt;
          supplementary_review_questions = supplementary_review_questionnaire.questions&lt;br /&gt;
          questionnaire.questions += supplementary_review_questions&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      vmquestions = questionnaire.questions&lt;br /&gt;
      vm.add_questions(vmquestions)&lt;br /&gt;
      vm.add_team_members(@team)&lt;br /&gt;
      vm.add_reviews(@participant, @team, @assignment.varying_rubrics_by_round?)&lt;br /&gt;
      vm.get_number_of_comments_greater_than_10_words&lt;br /&gt;
      @vmlist &amp;lt;&amp;lt; vm&lt;br /&gt;
    end&lt;br /&gt;
    @current_role_name = current_role_name&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  resources :questionnaires, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :copy&lt;br /&gt;
      get :list&lt;br /&gt;
      post :list_questionnaires&lt;br /&gt;
      get :new_quiz&lt;br /&gt;
      get :select_questionnaire_type&lt;br /&gt;
      post :select_questionnaire_type&lt;br /&gt;
      get :toggle_access&lt;br /&gt;
      get :view&lt;br /&gt;
      post :create_quiz_questionnaire&lt;br /&gt;
      post :update_quiz&lt;br /&gt;
      post :add_new_questions&lt;br /&gt;
      post :save_all_questions&lt;br /&gt;
      post :create_supplementary_review_questionnaire&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  resources :author_feedback_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :metareview_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :teammate_review_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :assignment_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :global_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :course_survey_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :bookmarkrating_questionnaires, controller: :questionnaires&lt;br /&gt;
  resources :supplementary_review_questionnaire, controller: :questionnaires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121565</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121565"/>
		<updated>2018-12-17T22:17:27Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Design Strategy''&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
''Changes in the User Interface''&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
Actually, we need to add tests for the following:&lt;br /&gt;
&lt;br /&gt;
1. To check the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; appears in the &amp;quot;Your Work&amp;quot; section of a student.&lt;br /&gt;
&lt;br /&gt;
2. To check if the link for &amp;quot;Supplementary Review Questionnaire&amp;quot; redirects to page which allows to create questionnaire.&lt;br /&gt;
&lt;br /&gt;
3. To check if the questionnaire ID is stored in the Team table.&lt;br /&gt;
&lt;br /&gt;
4. To check if the reviewers can see the supplementary questions that were added by the team as part of the review questions.&lt;br /&gt;
&lt;br /&gt;
5. To check if the responses of the Supplementary Review Questions have been added to the responses of the existing review questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121564</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121564"/>
		<updated>2018-12-17T22:03:57Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
We add a checkbox for the professor to indicate if student can add their own questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
The students own supplementary questions are leading by a heading &amp;quot;Supplementary Review Questions&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
The supplementary review results will be showed to the team like other results. &lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121562</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121562"/>
		<updated>2018-12-17T19:05:00Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
2. A button called &amp;quot;Create Supplementary Rubric&amp;quot; will appear in the student's &amp;quot;Your Work&amp;quot; section when the Instructor has allowed students to create supplementary review questions. So when a student clicks the button he/she can add the desired questions.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_2.png]]&lt;br /&gt;
&lt;br /&gt;
3. The page where student will be directed to when he/she clicks the Create Supplementary Rubric button. Students can add Questions to the created Supplementary Review questionnaire here.&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_3.png]]&lt;br /&gt;
&lt;br /&gt;
4. Review Page&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_4.png]]&lt;br /&gt;
&lt;br /&gt;
5. Review Results Page&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_5.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121561</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121561"/>
		<updated>2018-12-17T18:59:52Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
[[File:Yzhao47_1.png]]&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_5.png&amp;diff=121560</id>
		<title>File:Yzhao47 5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_5.png&amp;diff=121560"/>
		<updated>2018-12-17T18:58:39Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_4.png&amp;diff=121559</id>
		<title>File:Yzhao47 4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_4.png&amp;diff=121559"/>
		<updated>2018-12-17T18:58:22Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_3.png&amp;diff=121558</id>
		<title>File:Yzhao47 3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_3.png&amp;diff=121558"/>
		<updated>2018-12-17T18:58:03Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_2.png&amp;diff=121557</id>
		<title>File:Yzhao47 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_2.png&amp;diff=121557"/>
		<updated>2018-12-17T18:57:48Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_1.png&amp;diff=121556</id>
		<title>File:Yzhao47 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Yzhao47_1.png&amp;diff=121556"/>
		<updated>2018-12-17T18:57:17Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121555</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121555"/>
		<updated>2018-12-17T18:20:40Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
[[File:Capture.PNG]]&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121554</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121554"/>
		<updated>2018-12-17T18:15:06Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
1. Assignment Page&lt;br /&gt;
&lt;br /&gt;
[[File:Capture.png]]&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Capture.PNG&amp;diff=121553</id>
		<title>File:Capture.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Capture.PNG&amp;diff=121553"/>
		<updated>2018-12-17T18:12:10Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: uploaded a new version of &amp;amp;quot;File:Capture.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121552</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121552"/>
		<updated>2018-12-17T16:52:15Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121551</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121551"/>
		<updated>2018-12-17T16:45:19Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
 &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121550</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121550"/>
		<updated>2018-12-17T16:44:33Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal. &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. And when showing review questions to the reviewers we will look up the questionnaire id in Team table and modify the view to add the supplementary questions to review page. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121549</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121549"/>
		<updated>2018-12-17T16:28:16Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each team gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal. &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. If the professor allow students to create their own questions, there will be a button in the students &amp;quot;Your work&amp;quot; page which can let the students jump to the same page that an instructor lands on when creating a new rubric. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their supplementary questions.&lt;br /&gt;
&lt;br /&gt;
Changes in the User Interface&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121548</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121548"/>
		<updated>2018-12-17T06:13:50Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises. This project (E1879) aims to solve this problem by allowing students to add questions to the standard instructor generated rubric so that they can get specific feedback on from the reviewers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
We will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback. It will increase the benefit that each person gets because they can get feedback that is specific to their project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Design Strategy&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal. &lt;br /&gt;
First, we want the professor to control if the students can create their own supplementary questions by using a checkbox to indicate. Then we will add the questionnaire id of this new SupplementaryReviewQuestionnaire to the Team table when students create their own questionnaire in order to show the corresponding supplementary questions to the reviewers. Finally, after the reviewers finish the review and submit their responds, we will change the view and let the team member can see the feedback of their   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121547</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=121547"/>
		<updated>2018-12-17T05:52:55Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
First of all, we will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;br /&gt;
Expertiza on Github:https://github.com/zyczyh/expertiza&lt;br /&gt;
&lt;br /&gt;
Pull Request:https://github.com/expertiza/expertiza/pull/1325&lt;br /&gt;
&lt;br /&gt;
Expertiza YouTube channel:https://youtu.be/3PUNknSbU-k&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=120375</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=120375"/>
		<updated>2018-11-20T21:55:59Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
'''Proposed solution'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
First of all, we will add the Supplementary Review Questions to the current Review Questions, and show these student-generated questions under the rubric given by instructor. Even though these questions won't be graded, they will eventually provide diversity for feedback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119884</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119884"/>
		<updated>2018-11-14T00:33:01Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Case3.jpg&amp;diff=119883</id>
		<title>File:Case3.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Case3.jpg&amp;diff=119883"/>
		<updated>2018-11-14T00:32:34Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119881</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119881"/>
		<updated>2018-11-14T00:32:23Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of reviewing questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of reviewing responses of questions.&lt;br /&gt;
&lt;br /&gt;
[[File:case3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119876</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119876"/>
		<updated>2018-11-14T00:30:09Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of review questions for reviewers.&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Use case of &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Case2.jpg&amp;diff=119872</id>
		<title>File:Case2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Case2.jpg&amp;diff=119872"/>
		<updated>2018-11-14T00:25:43Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Case2.PNG&amp;diff=119869</id>
		<title>File:Case2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Case2.PNG&amp;diff=119869"/>
		<updated>2018-11-14T00:24:59Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119866</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119866"/>
		<updated>2018-11-14T00:24:36Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Use case of showing questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119861</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119861"/>
		<updated>2018-11-14T00:21:01Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Use case of creating a Supplementary Review Questionnaire&lt;br /&gt;
&lt;br /&gt;
[[File:case1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Case1.jpg&amp;diff=119860</id>
		<title>File:Case1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Case1.jpg&amp;diff=119860"/>
		<updated>2018-11-14T00:20:16Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: uploaded a new version of &amp;amp;quot;File:Case1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Case1.jpg&amp;diff=119859</id>
		<title>File:Case1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Case1.jpg&amp;diff=119859"/>
		<updated>2018-11-14T00:19:33Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:UseCase1.jpg&amp;diff=119850</id>
		<title>File:UseCase1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:UseCase1.jpg&amp;diff=119850"/>
		<updated>2018-11-14T00:10:05Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Case1.PNG&amp;diff=119843</id>
		<title>File:Case1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Case1.PNG&amp;diff=119843"/>
		<updated>2018-11-14T00:00:26Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119841</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119841"/>
		<updated>2018-11-13T23:58:55Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119698</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119698"/>
		<updated>2018-11-13T17:31:57Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Use Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119697</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119697"/>
		<updated>2018-11-13T17:28:27Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Cases'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119696</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119696"/>
		<updated>2018-11-13T17:20:10Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. Models&lt;br /&gt;
&lt;br /&gt;
app/models/team.rb&lt;br /&gt;
&lt;br /&gt;
app/models/response.rb&lt;br /&gt;
&lt;br /&gt;
2. Viewers:&lt;br /&gt;
&lt;br /&gt;
app/viewers/grades/view_team.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/response/response.html.erb&lt;br /&gt;
&lt;br /&gt;
app/viewers/submitted_content/_main.html.erb&lt;br /&gt;
&lt;br /&gt;
3. Controllers:&lt;br /&gt;
&lt;br /&gt;
app/controllers/response_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/grades_controller.rb&lt;br /&gt;
&lt;br /&gt;
app/controllers/submitted_content_controller.rb&lt;br /&gt;
&lt;br /&gt;
4. Config:&lt;br /&gt;
&lt;br /&gt;
routes.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119688</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119688"/>
		<updated>2018-11-13T15:27:17Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics. Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119674</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119674"/>
		<updated>2018-11-13T08:22:50Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics.Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119673</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119673"/>
		<updated>2018-11-13T08:22:25Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics.Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
'''Test Plan'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File which are added/modified'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Team members'''&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119672</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119672"/>
		<updated>2018-11-13T08:21:38Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Introduction&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics.Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
'''Implementation'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
Test Plan&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File which are added/modified&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Team members&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119671</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119671"/>
		<updated>2018-11-13T08:21:24Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Introduction&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics.Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Expertiza, all kinds of rubrics and surveys are subclasses of Questionnaire. A Questionnaire can contain “questions” of several types (e.g., checkboxes, dropdowns, text boxes). So that we will add a new subclass of Questionnaire named SupplementaryReviewQuestionnaire to achieve our goal.&lt;br /&gt;
&lt;br /&gt;
Test Plan&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File which are added/modified&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Team members&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119668</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119668"/>
		<updated>2018-11-13T08:18:15Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Introduction&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics.Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test Plan&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File which are added/modified&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Team members&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119667</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119667"/>
		<updated>2018-11-13T08:17:57Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Introduction&lt;br /&gt;
----&lt;br /&gt;
The rubrics in expertiza are created by instructors. These Rubrics only contain questions that are related to the existed topics.Now, Expertiza only supports students to pull questionnaires is specific rubrics to get some help. Even that they can ask about anything that is relevant to all the projects that will be submitted But when students encounter difficult problems which are not in the existed topics, and they want to get special advice on that new field, the demand for creating supplementary review questionnaire raises.&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test Plan&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File which are added/modified&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Team members&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119657</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119657"/>
		<updated>2018-11-13T06:33:01Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test Plan&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File which are added/modified&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Team members&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119656</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119656"/>
		<updated>2018-11-13T06:32:28Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Introduction]]&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test Plan&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File which are added/modified&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Team members&lt;br /&gt;
----&lt;br /&gt;
Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119655</id>
		<title>CSC/ECE 517 Fall 2018/E1879 Student Generated Questions Added To Rubric</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2018/E1879_Student_Generated_Questions_Added_To_Rubric&amp;diff=119655"/>
		<updated>2018-11-13T06:29:35Z</updated>

		<summary type="html">&lt;p&gt;Zhan23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Introduction&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test Plan&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File which are added/modified&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Team members&lt;br /&gt;
----&lt;br /&gt;
'''Bold text'''Yanchen Zhao&lt;br /&gt;
&lt;br /&gt;
Pingping Chen&lt;br /&gt;
&lt;br /&gt;
Jianshu Zhang&lt;br /&gt;
&lt;br /&gt;
Zirun Han&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhan23</name></author>
	</entry>
</feed>