<?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=Jwhostet</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=Jwhostet"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Jwhostet"/>
	<updated>2026-09-12T17:26:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138807</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138807"/>
		<updated>2021-04-30T23:30:26Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Files Changed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1500px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1500px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
Below is the final product of our implementation. As can be seen, some columns that had unnecessarily large amounts of space given to their width e.g. reviewer and team reviewed, have been reduced to accommodate the new author feedback column. There is also still ample space for the assign grade and write comments column to be expanded.&lt;br /&gt;
&lt;br /&gt;
[[File:author_feedback1.png |1500px|]]&lt;br /&gt;
&lt;br /&gt;
='''Files Changed'''=&lt;br /&gt;
The below files were expected to be edited by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
However, the below files had to be edited (or added) in order to implement the author feedback column:&lt;br /&gt;
#app/helpers/report_formatter_helper.rb&lt;br /&gt;
#app/helpers/review_mapping_helper.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/views/reports/_team_score_author_feedback.html.erb&lt;br /&gt;
&lt;br /&gt;
In the report_formatter_helper.rb file, an attribute had to be added to the helper (that is later mixed in with the reports_controller). This attribute gives the controller access to the model's author feedback scores that have been calculated.&lt;br /&gt;
&lt;br /&gt;
The review_mapping_helper.rb file required an older method to be once again introduced, this method is called &amp;quot;get_each_round_score_awarded_for_review_report&amp;quot;. It is required to properly read and display the computed author feedback scores from the hash they are stored in. Another method that is similar to it, &amp;quot;get_awarded_review_score&amp;quot;, could not be used as it causes an exception to be thrown; this is due to the fact that the &amp;quot;get_awarded_review_score&amp;quot; method does not accommodate for when the hash does not contain the key it is trying to access (specifically, it is unable to handle when the &amp;quot;reviewer_id&amp;quot; does not exist in the hash's set of keys).&lt;br /&gt;
&lt;br /&gt;
The on_the_fly_calc.rb file only required the expected changes as introduced in our implementation plan. However, one additional method, called &amp;quot;feedback_questionnaire_id&amp;quot; had to be added in order for the &amp;quot;calc_feedback_scores_sum&amp;quot; method (that is also in the same file) to work. This method used to exist else where in an older version of Expertiza, located in the assignment.rb model, but it is not needed beyond the scope of &amp;quot;calc_feedback_scores_sum&amp;quot;, so it exists with private access in the on_the_fly_calc.rb file.&lt;br /&gt;
&lt;br /&gt;
The _review_report.html.erb file had to be modified - the width of the other columns was reduced to make room for the author feedback column, the column header was added, and the necessary call to the author feedback column partial was also introduced. &lt;br /&gt;
&lt;br /&gt;
Finally, a new file called _team_score_author_feedback.html.erb, was added to the repository. This file is the partial required to render the author feedback column, and is a reintroduction of the 2018 group's _team_feedback_score.html.erb file.&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
&lt;br /&gt;
The feedbacks are stored in the ResponseMaps table and are queried using the assignment_id/reviewer who gave the response/reviews(responses) in each round in the 'compute_author_feedback_scores' method. The method iterates through all the rounds done during the review process, and calls the 'calc_avg_feedback_score' method, providing a &amp;quot;response&amp;quot; argument. The response argument is the review a team provides for the author's work. Lastly, in order to obtain the final average score for a particular review (response) that the authors (team) have gotten, they obtain a sum of the feedback scores from each of the authors and divide it by the total number of feedbacks that were obtained. These methods have already been implemented by the 2018 group and are included here again for the reader's convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def compute_author_feedback_scores&lt;br /&gt;
    @author_feedback_scores = {}&lt;br /&gt;
    @response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', self.id, 'ReviewResponseMap')&lt;br /&gt;
    rounds = self.rounds_of_reviews&lt;br /&gt;
    (1..rounds).each do |round|&lt;br /&gt;
      @response_maps.each do |response_map|&lt;br /&gt;
        response = Response.where('map_id = ?', response_map.id)&lt;br /&gt;
        response = response.select {|response| response.round == round }&lt;br /&gt;
        @round = round&lt;br /&gt;
        @response_map = response_map&lt;br /&gt;
        calc_avg_feedback_score(response) unless response.empty?&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    @author_feedback_scores&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_avg_feedback_score(response)&lt;br /&gt;
  # Retrieve the author feedback response maps for the teammates reviewing the review of their work.&lt;br /&gt;
  author_feedback_response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', response.first.id, 'FeedbackResponseMap')&lt;br /&gt;
  author_feedback_response_maps.each do |author_feedback_response_map|&lt;br /&gt;
    @corresponding_response = Response.where('map_id = ?', author_feedback_response_map.id)&lt;br /&gt;
    next if @corresponding_response.empty?&lt;br /&gt;
    calc_feedback_scores_sum&lt;br /&gt;
  end&lt;br /&gt;
  # Divide the sum of the author feedback scores for this review by their number to get the&lt;br /&gt;
  # average.&lt;br /&gt;
&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !author_feedback_response_maps.empty?&lt;br /&gt;
    @author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id] /= author_feedback_response_maps.count&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_feedback_scores_sum&lt;br /&gt;
  @respective_scores = {}&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp; !@author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
    @respective_scores = @author_feedback_scores[@response_map.reviewer_id][@round]&lt;br /&gt;
  end&lt;br /&gt;
  author_feedback_questionnaire_id = feedback_questionnaire_id(@corresponding_response)&lt;br /&gt;
  @questions = Question.where('questionnaire_id = ?', author_feedback_questionnaire_id)&lt;br /&gt;
  # Calculate the score of the author feedback review.&lt;br /&gt;
  calc_review_score&lt;br /&gt;
  # Compute the sum of the author feedback scores for this review.&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] = 0 if @respective_scores[@response_map.reviewee_id].nil?&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] += @this_review_score&lt;br /&gt;
  # The reviewer is the metareviewee whose review the authors or teammates are reviewing.&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id] = {} if @author_feedback_scores[@response_map.reviewer_id].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = {} if @author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = @respective_scores&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138806</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138806"/>
		<updated>2021-04-30T23:21:45Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Files to be Changed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1500px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1500px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
Below is the final product of our implementation. As can be seen, some columns that had unnecessarily large amounts of space given to their width e.g. reviewer and team reviewed, have been reduced to accommodate the new author feedback column. There is also still ample space for the assign grade and write comments column to be expanded.&lt;br /&gt;
&lt;br /&gt;
[[File:author_feedback1.png |1500px|]]&lt;br /&gt;
&lt;br /&gt;
='''Files Changed'''=&lt;br /&gt;
The below files were expected to be edited by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
However, the below files had to be edited (or added) in order to implement the author feedback column:&lt;br /&gt;
#app/helpers/report_formatter_helper.rb&lt;br /&gt;
#app/helpers/review_mapping_helper.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/views/reports/_team_score_author_feedback.html.erb&lt;br /&gt;
&lt;br /&gt;
In the report_formatter_helper.rb file, an attribute had to be added to the helper (that is later mixed in with the reports_controller). This attribute gives the controller access to the model's author feedback scores that have been calculated.&lt;br /&gt;
&lt;br /&gt;
The review_mapping_helper.rb file required an older method to be once again introduced, this method is called &amp;quot;get_each_round_score_awarded_for_review_report&amp;quot;. It is required to properly read and display the computed author feedback scores from the hash they are stored in. Another method that is similar to it, &amp;quot;get_awarded_review_score&amp;quot;, could not be used as it causes an exception to be thrown; this is due to the fact that the &amp;quot;get_awarded_review_score&amp;quot; method does not accommodate for when the hash does not contain the key it is trying to access (specifically, it is unable to handle when the &amp;quot;reviewer_id&amp;quot; does not exist in the hash's set of keys).&lt;br /&gt;
&lt;br /&gt;
The on_the_fly_calc.rb file only required the expected changes as introduced in our implementation plan. However, one additional method, called &amp;quot;feedback_questionnaire_id&amp;quot; had to be added in order for the &amp;quot;calc_feedback_scores_sum&amp;quot; method (that is also in the same file) to work. This method used to exist else where in an older version of Expertiza, located in the assignment.rb model, but it is not needed beyond the scope of &amp;quot;calc_feedback_scores_sum&amp;quot;, so it exists with private access in the on_the_fly_calc.rb file.&lt;br /&gt;
&lt;br /&gt;
The _review_report.html.erb file had to be modified - the width of the other columns was reduced to make room for the author feedback column, the column header was added, and the necessary call to the author feedback column partial was also introduced. &lt;br /&gt;
&lt;br /&gt;
Finally, a new file called _team_score_author_feedback.html.erb, was added to the repository. This file is the partial required to render the author feedback column.&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
&lt;br /&gt;
The feedbacks are stored in the ResponseMaps table and are queried using the assignment_id/reviewer who gave the response/reviews(responses) in each round in the 'compute_author_feedback_scores' method. The method iterates through all the rounds done during the review process, and calls the 'calc_avg_feedback_score' method, providing a &amp;quot;response&amp;quot; argument. The response argument is the review a team provides for the author's work. Lastly, in order to obtain the final average score for a particular review (response) that the authors (team) have gotten, they obtain a sum of the feedback scores from each of the authors and divide it by the total number of feedbacks that were obtained. These methods have already been implemented by the 2018 group and are included here again for the reader's convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def compute_author_feedback_scores&lt;br /&gt;
    @author_feedback_scores = {}&lt;br /&gt;
    @response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', self.id, 'ReviewResponseMap')&lt;br /&gt;
    rounds = self.rounds_of_reviews&lt;br /&gt;
    (1..rounds).each do |round|&lt;br /&gt;
      @response_maps.each do |response_map|&lt;br /&gt;
        response = Response.where('map_id = ?', response_map.id)&lt;br /&gt;
        response = response.select {|response| response.round == round }&lt;br /&gt;
        @round = round&lt;br /&gt;
        @response_map = response_map&lt;br /&gt;
        calc_avg_feedback_score(response) unless response.empty?&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    @author_feedback_scores&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_avg_feedback_score(response)&lt;br /&gt;
  # Retrieve the author feedback response maps for the teammates reviewing the review of their work.&lt;br /&gt;
  author_feedback_response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', response.first.id, 'FeedbackResponseMap')&lt;br /&gt;
  author_feedback_response_maps.each do |author_feedback_response_map|&lt;br /&gt;
    @corresponding_response = Response.where('map_id = ?', author_feedback_response_map.id)&lt;br /&gt;
    next if @corresponding_response.empty?&lt;br /&gt;
    calc_feedback_scores_sum&lt;br /&gt;
  end&lt;br /&gt;
  # Divide the sum of the author feedback scores for this review by their number to get the&lt;br /&gt;
  # average.&lt;br /&gt;
&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !author_feedback_response_maps.empty?&lt;br /&gt;
    @author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id] /= author_feedback_response_maps.count&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_feedback_scores_sum&lt;br /&gt;
  @respective_scores = {}&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp; !@author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
    @respective_scores = @author_feedback_scores[@response_map.reviewer_id][@round]&lt;br /&gt;
  end&lt;br /&gt;
  author_feedback_questionnaire_id = feedback_questionnaire_id(@corresponding_response)&lt;br /&gt;
  @questions = Question.where('questionnaire_id = ?', author_feedback_questionnaire_id)&lt;br /&gt;
  # Calculate the score of the author feedback review.&lt;br /&gt;
  calc_review_score&lt;br /&gt;
  # Compute the sum of the author feedback scores for this review.&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] = 0 if @respective_scores[@response_map.reviewee_id].nil?&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] += @this_review_score&lt;br /&gt;
  # The reviewer is the metareviewee whose review the authors or teammates are reviewing.&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id] = {} if @author_feedback_scores[@response_map.reviewer_id].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = {} if @author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = @respective_scores&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138805</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138805"/>
		<updated>2021-04-30T23:20:24Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1500px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1500px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
Below is the final product of our implementation. As can be seen, some columns that had unnecessarily large amounts of space given to their width e.g. reviewer and team reviewed, have been reduced to accommodate the new author feedback column. There is also still ample space for the assign grade and write comments column to be expanded.&lt;br /&gt;
&lt;br /&gt;
[[File:author_feedback1.png |1500px|]]&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
The below files had to be edited (or added) in order to implement the author feedback column:&lt;br /&gt;
#app/helpers/report_formatter_helper.rb&lt;br /&gt;
#app/helpers/review_mapping_helper.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/views/reports/_team_score_author_feedback.html.erb&lt;br /&gt;
&lt;br /&gt;
In the report_formatter_helper.rb file, an attribute had to be added to the helper (that is later mixed in with the reports_controller). This attribute gives the controller access to the model's author feedback scores that have been calculated.&lt;br /&gt;
&lt;br /&gt;
The review_mapping_helper.rb file required an older method to be once again introduced, this method is called &amp;quot;get_each_round_score_awarded_for_review_report&amp;quot;. It is required to properly read and display the computed author feedback scores from the hash they are stored in. Another method that is similar to it, &amp;quot;get_awarded_review_score&amp;quot;, could not be used as it causes an exception to be thrown; this is due to the fact that the &amp;quot;get_awarded_review_score&amp;quot; method does not accommodate for when the hash does not contain the key it is trying to access (specifically, it is unable to handle when the &amp;quot;reviewer_id&amp;quot; does not exist in the hash's set of keys).&lt;br /&gt;
&lt;br /&gt;
The on_the_fly_calc.rb file only required the expected changes as introduced in our implementation plan. However, one additional method, called &amp;quot;feedback_questionnaire_id&amp;quot; had to be added in order for the &amp;quot;calc_feedback_scores_sum&amp;quot; method (that is also in the same file) to work. This method used to exist else where in an older version of Expertiza, located in the assignment.rb model, but it is not needed beyond the scope of &amp;quot;calc_feedback_scores_sum&amp;quot;, so it exists with private access in the on_the_fly_calc.rb file.&lt;br /&gt;
&lt;br /&gt;
The _review_report.html.erb file had to be modified - the width of the other columns was reduced to make room for the author feedback column, the column header was added, and the necessary call to the author feedback column partial was also introduced. &lt;br /&gt;
&lt;br /&gt;
Finally, a new file called _team_score_author_feedback.html.erb, was added to the repository. This file is the partial required to render the author feedback column.&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
&lt;br /&gt;
The feedbacks are stored in the ResponseMaps table and are queried using the assignment_id/reviewer who gave the response/reviews(responses) in each round in the 'compute_author_feedback_scores' method. The method iterates through all the rounds done during the review process, and calls the 'calc_avg_feedback_score' method, providing a &amp;quot;response&amp;quot; argument. The response argument is the review a team provides for the author's work. Lastly, in order to obtain the final average score for a particular review (response) that the authors (team) have gotten, they obtain a sum of the feedback scores from each of the authors and divide it by the total number of feedbacks that were obtained. These methods have already been implemented by the 2018 group and are included here again for the reader's convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def compute_author_feedback_scores&lt;br /&gt;
    @author_feedback_scores = {}&lt;br /&gt;
    @response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', self.id, 'ReviewResponseMap')&lt;br /&gt;
    rounds = self.rounds_of_reviews&lt;br /&gt;
    (1..rounds).each do |round|&lt;br /&gt;
      @response_maps.each do |response_map|&lt;br /&gt;
        response = Response.where('map_id = ?', response_map.id)&lt;br /&gt;
        response = response.select {|response| response.round == round }&lt;br /&gt;
        @round = round&lt;br /&gt;
        @response_map = response_map&lt;br /&gt;
        calc_avg_feedback_score(response) unless response.empty?&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    @author_feedback_scores&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_avg_feedback_score(response)&lt;br /&gt;
  # Retrieve the author feedback response maps for the teammates reviewing the review of their work.&lt;br /&gt;
  author_feedback_response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', response.first.id, 'FeedbackResponseMap')&lt;br /&gt;
  author_feedback_response_maps.each do |author_feedback_response_map|&lt;br /&gt;
    @corresponding_response = Response.where('map_id = ?', author_feedback_response_map.id)&lt;br /&gt;
    next if @corresponding_response.empty?&lt;br /&gt;
    calc_feedback_scores_sum&lt;br /&gt;
  end&lt;br /&gt;
  # Divide the sum of the author feedback scores for this review by their number to get the&lt;br /&gt;
  # average.&lt;br /&gt;
&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !author_feedback_response_maps.empty?&lt;br /&gt;
    @author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id] /= author_feedback_response_maps.count&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_feedback_scores_sum&lt;br /&gt;
  @respective_scores = {}&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp; !@author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
    @respective_scores = @author_feedback_scores[@response_map.reviewer_id][@round]&lt;br /&gt;
  end&lt;br /&gt;
  author_feedback_questionnaire_id = feedback_questionnaire_id(@corresponding_response)&lt;br /&gt;
  @questions = Question.where('questionnaire_id = ?', author_feedback_questionnaire_id)&lt;br /&gt;
  # Calculate the score of the author feedback review.&lt;br /&gt;
  calc_review_score&lt;br /&gt;
  # Compute the sum of the author feedback scores for this review.&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] = 0 if @respective_scores[@response_map.reviewee_id].nil?&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] += @this_review_score&lt;br /&gt;
  # The reviewer is the metareviewee whose review the authors or teammates are reviewing.&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id] = {} if @author_feedback_scores[@response_map.reviewer_id].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = {} if @author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = @respective_scores&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138804</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138804"/>
		<updated>2021-04-30T23:18:32Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
Below is the final product of our implementation. As can be seen, some columns that had unnecessarily large amounts of space given to their width e.g. reviewer and team reviewed, have been reduced to accommodate the new author feedback column. There is also still ample space for the assign grade and write comments column to be expanded.&lt;br /&gt;
[[File:author_feedback1.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
The below files had to be edited (or added) in order to implement the author feedback column:&lt;br /&gt;
#app/helpers/report_formatter_helper.rb&lt;br /&gt;
#app/helpers/review_mapping_helper.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/views/reports/_team_score_author_feedback.html.erb&lt;br /&gt;
&lt;br /&gt;
In the report_formatter_helper.rb file, an attribute had to be added to the helper (that is later mixed in with the reports_controller). This attribute gives the controller access to the model's author feedback scores that have been calculated.&lt;br /&gt;
&lt;br /&gt;
The review_mapping_helper.rb file required an older method to be once again introduced, this method is called &amp;quot;get_each_round_score_awarded_for_review_report&amp;quot;. It is required to properly read and display the computed author feedback scores from the hash they are stored in. Another method that is similar to it, &amp;quot;get_awarded_review_score&amp;quot;, could not be used as it causes an exception to be thrown; this is due to the fact that the &amp;quot;get_awarded_review_score&amp;quot; method does not accommodate for when the hash does not contain the key it is trying to access (specifically, it is unable to handle when the &amp;quot;reviewer_id&amp;quot; does not exist in the hash's set of keys).&lt;br /&gt;
&lt;br /&gt;
The on_the_fly_calc.rb file only required the expected changes as introduced in our implementation plan. However, one additional method, called &amp;quot;feedback_questionnaire_id&amp;quot; had to be added in order for the &amp;quot;calc_feedback_scores_sum&amp;quot; method (that is also in the same file) to work. This method used to exist else where in an older version of Expertiza, located in the assignment.rb model, but it is not needed beyond the scope of &amp;quot;calc_feedback_scores_sum&amp;quot;, so it exists with private access in the on_the_fly_calc.rb file.&lt;br /&gt;
&lt;br /&gt;
The _review_report.html.erb file had to be modified - the width of the other columns was reduced to make room for the author feedback column, the column header was added, and the necessary call to the author feedback column partial was also introduced. &lt;br /&gt;
&lt;br /&gt;
Finally, a new file called _team_score_author_feedback.html.erb, was added to the repository. This file is the partial required to render the author feedback column.&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
&lt;br /&gt;
The feedbacks are stored in the ResponseMaps table and are queried using the assignment_id/reviewer who gave the response/reviews(responses) in each round in the 'compute_author_feedback_scores' method. The method iterates through all the rounds done during the review process, and calls the 'calc_avg_feedback_score' method, providing a &amp;quot;response&amp;quot; argument. The response argument is the review a team provides for the author's work. Lastly, in order to obtain the final average score for a particular review (response) that the authors (team) have gotten, they obtain a sum of the feedback scores from each of the authors and divide it by the total number of feedbacks that were obtained. These methods have already been implemented by the 2018 group and are included here again for the reader's convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def compute_author_feedback_scores&lt;br /&gt;
    @author_feedback_scores = {}&lt;br /&gt;
    @response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', self.id, 'ReviewResponseMap')&lt;br /&gt;
    rounds = self.rounds_of_reviews&lt;br /&gt;
    (1..rounds).each do |round|&lt;br /&gt;
      @response_maps.each do |response_map|&lt;br /&gt;
        response = Response.where('map_id = ?', response_map.id)&lt;br /&gt;
        response = response.select {|response| response.round == round }&lt;br /&gt;
        @round = round&lt;br /&gt;
        @response_map = response_map&lt;br /&gt;
        calc_avg_feedback_score(response) unless response.empty?&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    @author_feedback_scores&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_avg_feedback_score(response)&lt;br /&gt;
  # Retrieve the author feedback response maps for the teammates reviewing the review of their work.&lt;br /&gt;
  author_feedback_response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', response.first.id, 'FeedbackResponseMap')&lt;br /&gt;
  author_feedback_response_maps.each do |author_feedback_response_map|&lt;br /&gt;
    @corresponding_response = Response.where('map_id = ?', author_feedback_response_map.id)&lt;br /&gt;
    next if @corresponding_response.empty?&lt;br /&gt;
    calc_feedback_scores_sum&lt;br /&gt;
  end&lt;br /&gt;
  # Divide the sum of the author feedback scores for this review by their number to get the&lt;br /&gt;
  # average.&lt;br /&gt;
&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !author_feedback_response_maps.empty?&lt;br /&gt;
    @author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id] /= author_feedback_response_maps.count&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_feedback_scores_sum&lt;br /&gt;
  @respective_scores = {}&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp; !@author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
    @respective_scores = @author_feedback_scores[@response_map.reviewer_id][@round]&lt;br /&gt;
  end&lt;br /&gt;
  author_feedback_questionnaire_id = feedback_questionnaire_id(@corresponding_response)&lt;br /&gt;
  @questions = Question.where('questionnaire_id = ?', author_feedback_questionnaire_id)&lt;br /&gt;
  # Calculate the score of the author feedback review.&lt;br /&gt;
  calc_review_score&lt;br /&gt;
  # Compute the sum of the author feedback scores for this review.&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] = 0 if @respective_scores[@response_map.reviewee_id].nil?&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] += @this_review_score&lt;br /&gt;
  # The reviewer is the metareviewee whose review the authors or teammates are reviewing.&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id] = {} if @author_feedback_scores[@response_map.reviewer_id].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = {} if @author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = @respective_scores&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Author_feedback1.png&amp;diff=138803</id>
		<title>File:Author feedback1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Author_feedback1.png&amp;diff=138803"/>
		<updated>2021-04-30T23:15:54Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138802</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138802"/>
		<updated>2021-04-30T23:12:45Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
The below files had to be edited (or added) in order to implement the author feedback column:&lt;br /&gt;
#app/helpers/report_formatter_helper.rb&lt;br /&gt;
#app/helpers/review_mapping_helper.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/views/reports/_team_score_author_feedback.html.erb&lt;br /&gt;
&lt;br /&gt;
In the report_formatter_helper.rb file, an attribute had to be added to the helper (that is later mixed in with the reports_controller). This attribute gives the controller access to the model's author feedback scores that have been calculated.&lt;br /&gt;
&lt;br /&gt;
The review_mapping_helper.rb file required an older method to be once again introduced, this method is called &amp;quot;get_each_round_score_awarded_for_review_report&amp;quot;. It is required to properly read and display the computed author feedback scores from the hash they are stored in. Another method that is similar to it, &amp;quot;get_awarded_review_score&amp;quot;, could not be used as it causes an exception to be thrown; this is due to the fact that the &amp;quot;get_awarded_review_score&amp;quot; method does not accommodate for when the hash does not contain the key it is trying to access (specifically, it is unable to handle when the &amp;quot;reviewer_id&amp;quot; does not exist in the hash's set of keys).&lt;br /&gt;
&lt;br /&gt;
The on_the_fly_calc.rb file only required the expected changes as introduced in our implementation plan. However, one additional method, called &amp;quot;feedback_questionnaire_id&amp;quot; had to be added in order for the &amp;quot;calc_feedback_scores_sum&amp;quot; method (that is also in the same file) to work. This method used to exist else where in an older version of Expertiza, located in the assignment.rb model, but it is not needed beyond the scope of &amp;quot;calc_feedback_scores_sum&amp;quot;, so it exists with private access in the on_the_fly_calc.rb file.&lt;br /&gt;
&lt;br /&gt;
The _review_report.html.erb file had to be modified - the width of the other columns was reduced to make room for the author feedback column, the column header was added, and the necessary call to the author feedback column partial was also introduced. &lt;br /&gt;
&lt;br /&gt;
Finally, a new file called _team_score_author_feedback.html.erb, was added to the repository. This file is the partial required to render the author feedback column.&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
&lt;br /&gt;
The feedbacks are stored in the ResponseMaps table and are queried using the assignment_id/reviewer who gave the response/reviews(responses) in each round in the 'compute_author_feedback_scores' method. The method iterates through all the rounds done during the review process, and calls the 'calc_avg_feedback_score' method, providing a &amp;quot;response&amp;quot; argument. The response argument is the review a team provides for the author's work. Lastly, in order to obtain the final average score for a particular review (response) that the authors (team) have gotten, they obtain a sum of the feedback scores from each of the authors and divide it by the total number of feedbacks that were obtained. These methods have already been implemented by the 2018 group and are included here again for the reader's convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def compute_author_feedback_scores&lt;br /&gt;
    @author_feedback_scores = {}&lt;br /&gt;
    @response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', self.id, 'ReviewResponseMap')&lt;br /&gt;
    rounds = self.rounds_of_reviews&lt;br /&gt;
    (1..rounds).each do |round|&lt;br /&gt;
      @response_maps.each do |response_map|&lt;br /&gt;
        response = Response.where('map_id = ?', response_map.id)&lt;br /&gt;
        response = response.select {|response| response.round == round }&lt;br /&gt;
        @round = round&lt;br /&gt;
        @response_map = response_map&lt;br /&gt;
        calc_avg_feedback_score(response) unless response.empty?&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    @author_feedback_scores&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_avg_feedback_score(response)&lt;br /&gt;
  # Retrieve the author feedback response maps for the teammates reviewing the review of their work.&lt;br /&gt;
  author_feedback_response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', response.first.id, 'FeedbackResponseMap')&lt;br /&gt;
  author_feedback_response_maps.each do |author_feedback_response_map|&lt;br /&gt;
    @corresponding_response = Response.where('map_id = ?', author_feedback_response_map.id)&lt;br /&gt;
    next if @corresponding_response.empty?&lt;br /&gt;
    calc_feedback_scores_sum&lt;br /&gt;
  end&lt;br /&gt;
  # Divide the sum of the author feedback scores for this review by their number to get the&lt;br /&gt;
  # average.&lt;br /&gt;
&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !author_feedback_response_maps.empty?&lt;br /&gt;
    @author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id] /= author_feedback_response_maps.count&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_feedback_scores_sum&lt;br /&gt;
  @respective_scores = {}&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp; !@author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
    @respective_scores = @author_feedback_scores[@response_map.reviewer_id][@round]&lt;br /&gt;
  end&lt;br /&gt;
  author_feedback_questionnaire_id = feedback_questionnaire_id(@corresponding_response)&lt;br /&gt;
  @questions = Question.where('questionnaire_id = ?', author_feedback_questionnaire_id)&lt;br /&gt;
  # Calculate the score of the author feedback review.&lt;br /&gt;
  calc_review_score&lt;br /&gt;
  # Compute the sum of the author feedback scores for this review.&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] = 0 if @respective_scores[@response_map.reviewee_id].nil?&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] += @this_review_score&lt;br /&gt;
  # The reviewer is the metareviewee whose review the authors or teammates are reviewing.&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id] = {} if @author_feedback_scores[@response_map.reviewer_id].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = {} if @author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = @respective_scores&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138646</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138646"/>
		<updated>2021-04-06T03:30:17Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Implementation Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
&lt;br /&gt;
The feedbacks are stored in the ResponseMaps table and are queried using the assignment_id/reviewer who gave the response/reviews(responses) in each round in the 'compute_author_feedback_scores' method. The method iterates through all the rounds done during the review process, and calls the 'calc_avg_feedback_score' method, providing a &amp;quot;response&amp;quot; argument. The response argument is the review a team provides for the author's work. Lastly, in order to obtain the final average score for a particular review (response) that the authors (team) have gotten, they obtain a sum of the feedback scores from each of the authors and divide it by the total number of feedbacks that were obtained. These methods have already been implemented by the 2018 group and are included here again for the reader's convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def compute_author_feedback_scores&lt;br /&gt;
    @author_feedback_scores = {}&lt;br /&gt;
    @response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', self.id, 'ReviewResponseMap')&lt;br /&gt;
    rounds = self.rounds_of_reviews&lt;br /&gt;
    (1..rounds).each do |round|&lt;br /&gt;
      @response_maps.each do |response_map|&lt;br /&gt;
        response = Response.where('map_id = ?', response_map.id)&lt;br /&gt;
        response = response.select {|response| response.round == round }&lt;br /&gt;
        @round = round&lt;br /&gt;
        @response_map = response_map&lt;br /&gt;
        calc_avg_feedback_score(response) unless response.empty?&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    @author_feedback_scores&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_avg_feedback_score(response)&lt;br /&gt;
  # Retrieve the author feedback response maps for the teammates reviewing the review of their work.&lt;br /&gt;
  author_feedback_response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', response.first.id, 'FeedbackResponseMap')&lt;br /&gt;
  author_feedback_response_maps.each do |author_feedback_response_map|&lt;br /&gt;
    @corresponding_response = Response.where('map_id = ?', author_feedback_response_map.id)&lt;br /&gt;
    next if @corresponding_response.empty?&lt;br /&gt;
    calc_feedback_scores_sum&lt;br /&gt;
  end&lt;br /&gt;
  # Divide the sum of the author feedback scores for this review by their number to get the&lt;br /&gt;
  # average.&lt;br /&gt;
&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !author_feedback_response_maps.empty?&lt;br /&gt;
    @author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id] /= author_feedback_response_maps.count&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_feedback_scores_sum&lt;br /&gt;
  @respective_scores = {}&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp; !@author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
    @respective_scores = @author_feedback_scores[@response_map.reviewer_id][@round]&lt;br /&gt;
  end&lt;br /&gt;
  author_feedback_questionnaire_id = feedback_questionnaire_id(@corresponding_response)&lt;br /&gt;
  @questions = Question.where('questionnaire_id = ?', author_feedback_questionnaire_id)&lt;br /&gt;
  # Calculate the score of the author feedback review.&lt;br /&gt;
  calc_review_score&lt;br /&gt;
  # Compute the sum of the author feedback scores for this review.&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] = 0 if @respective_scores[@response_map.reviewee_id].nil?&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] += @this_review_score&lt;br /&gt;
  # The reviewer is the metareviewee whose review the authors or teammates are reviewing.&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id] = {} if @author_feedback_scores[@response_map.reviewer_id].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = {} if @author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = @respective_scores&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138645</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138645"/>
		<updated>2021-04-06T03:28:16Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
&lt;br /&gt;
The feedbacks are stored in the ResponseMaps table and are queried using the assignment_id/reviewer who gave the response/reviews(responses) in each round in the 'compute_author_feedback_scores' method. The method iterates through all the rounds done during the review process, and calls the 'calc_avg_feedback_score' method, providing a &amp;quot;response&amp;quot; argument. The response argument is the review a team provides for the author's work. These methods have already been implemented by the 2018 group and are included here again for the reader's convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def compute_author_feedback_scores&lt;br /&gt;
    @author_feedback_scores = {}&lt;br /&gt;
    @response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', self.id, 'ReviewResponseMap')&lt;br /&gt;
    rounds = self.rounds_of_reviews&lt;br /&gt;
    (1..rounds).each do |round|&lt;br /&gt;
      @response_maps.each do |response_map|&lt;br /&gt;
        response = Response.where('map_id = ?', response_map.id)&lt;br /&gt;
        response = response.select {|response| response.round == round }&lt;br /&gt;
        @round = round&lt;br /&gt;
        @response_map = response_map&lt;br /&gt;
        calc_avg_feedback_score(response) unless response.empty?&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    @author_feedback_scores&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_avg_feedback_score(response)&lt;br /&gt;
  # Retrieve the author feedback response maps for the teammates reviewing the review of their work.&lt;br /&gt;
  author_feedback_response_maps = ResponseMap.where('reviewed_object_id = ? &amp;amp;&amp;amp; type = ?', response.first.id, 'FeedbackResponseMap')&lt;br /&gt;
  author_feedback_response_maps.each do |author_feedback_response_map|&lt;br /&gt;
    @corresponding_response = Response.where('map_id = ?', author_feedback_response_map.id)&lt;br /&gt;
    next if @corresponding_response.empty?&lt;br /&gt;
    calc_feedback_scores_sum&lt;br /&gt;
  end&lt;br /&gt;
  # Divide the sum of the author feedback scores for this review by their number to get the&lt;br /&gt;
  # average.&lt;br /&gt;
&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !@author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id].nil? &amp;amp;&amp;amp;&lt;br /&gt;
      !author_feedback_response_maps.empty?&lt;br /&gt;
    @author_feedback_scores[@response_map.reviewer_id][@round][@response_map.reviewee_id] /= author_feedback_response_maps.count&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
def calc_feedback_scores_sum&lt;br /&gt;
  @respective_scores = {}&lt;br /&gt;
  if !@author_feedback_scores[@response_map.reviewer_id].nil? &amp;amp;&amp;amp; !@author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
    @respective_scores = @author_feedback_scores[@response_map.reviewer_id][@round]&lt;br /&gt;
  end&lt;br /&gt;
  author_feedback_questionnaire_id = feedback_questionnaire_id(@corresponding_response)&lt;br /&gt;
  @questions = Question.where('questionnaire_id = ?', author_feedback_questionnaire_id)&lt;br /&gt;
  # Calculate the score of the author feedback review.&lt;br /&gt;
  calc_review_score&lt;br /&gt;
  # Compute the sum of the author feedback scores for this review.&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] = 0 if @respective_scores[@response_map.reviewee_id].nil?&lt;br /&gt;
  @respective_scores[@response_map.reviewee_id] += @this_review_score&lt;br /&gt;
  # The reviewer is the metareviewee whose review the authors or teammates are reviewing.&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id] = {} if @author_feedback_scores[@response_map.reviewer_id].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = {} if @author_feedback_scores[@response_map.reviewer_id][@round].nil?&lt;br /&gt;
  @author_feedback_scores[@response_map.reviewer_id][@round] = @respective_scores&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138644</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138644"/>
		<updated>2021-04-06T03:18:22Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;br /&gt;
#https://docs.google.com/document/d/1uzr5pybVKYr_K1Q8wSd4t-Id9nqTt3k1ePseDjY-RJg/edit#&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138643</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138643"/>
		<updated>2021-04-06T03:17:43Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza. Secondary tasks are to make the author feedback column toggleable and to refactor the function that averages author feedbacks so that it reuses existing code that exists somewhere in Expertiza already.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138642</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138642"/>
		<updated>2021-04-06T03:16:03Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;br /&gt;
&lt;br /&gt;
='''References'''=&lt;br /&gt;
#https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138641</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138641"/>
		<updated>2021-04-06T03:15:20Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Implementation Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138640</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138640"/>
		<updated>2021-04-06T03:14:58Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Implementation Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller for the file 'app/controllers/review_mapping_controller.rb'. The following method was written by the previous team to calculate the average scores for the feedback given by authors for the reviews of their work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
 def calculate_avg_score_by_feedback(question_answers, q_max_score)&lt;br /&gt;
      # get score and summary of answers for each question&lt;br /&gt;
      # only include divide the valid_answer_sum with the number of valid answers&lt;br /&gt;
&lt;br /&gt;
      valid_answer_counter = 0&lt;br /&gt;
      question_score = 0.0&lt;br /&gt;
      question_answers.each do |ans|&lt;br /&gt;
        # calculate score per question&lt;br /&gt;
        unless ans.answer.nil?&lt;br /&gt;
          question_score += ans.answer&lt;br /&gt;
          valid_answer_counter += 1&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if valid_answer_counter &amp;gt; 0 and q_max_score &amp;gt; 0&lt;br /&gt;
        # convert the score in percentage&lt;br /&gt;
        question_score /= (valid_answer_counter * q_max_score)&lt;br /&gt;
        question_score = question_score.round(2) * 100&lt;br /&gt;
      end&lt;br /&gt;
      question_score&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it exists in the controller level logic, and perhaps isn't required to exist there. It is likely better for this method to be moved to this controller's corresponding model, and we will do so during our project to make the code follow the principles of MVC.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138639</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138639"/>
		<updated>2021-04-06T03:11:36Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Implementation Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
They also add a 'calculate_avg_score_by_feedback' method to the controller&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138638</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138638"/>
		<updated>2021-04-06T03:09:54Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Implementation Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
Since we will need to modify the user interface to introduce the author feedback column, we expect to add a column within the .erb files in the views folder that were identified above. These files were selected as they were the files necessary for the previous group to implement their UI changes.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138637</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138637"/>
		<updated>2021-04-06T03:07:39Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Implementation Plan'''=&lt;br /&gt;
Like the 2018 group, we plan to add three methods to the on_the_fly_calc.rb file in Models. These methods are:&lt;br /&gt;
#compute_author_feedback_scores&lt;br /&gt;
#calc_avg_feedback_score(response)&lt;br /&gt;
#calc_feedback_scores_sum&lt;br /&gt;
However, they calculate the average with a custom implementation that most likely exists somewhere else in Expertiza already as suggested by the instructors. As part of our project, we will identify where that functionality exists, and either reuse it or extend it so that it can be reused here instead. Though, we will first implement the functionality as the previous group did, and then slowly perform our refactor to ensure functionality is not broken by the refactoring process.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138636</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138636"/>
		<updated>2021-04-06T02:56:41Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
The 2018 group wrote a RSpec test when they wrote their function to calculate the author feedback scores. It was located in the on_the_fly_calc_spec.rb file and the method they wrote was called 'compute_author_feedback_scores'. Below is the snippet of the RSpec test that they wrote:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: black; border:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
describe '#compute_author_feedback_score' do&lt;br /&gt;
    let(:reviewer) { build(:participant, id: 1) }&lt;br /&gt;
    let(:feedback) { Answer.new(answer: 2, response_id: 1, comments: 'Feedback Text', question_id: 2) }&lt;br /&gt;
    let(:feedback_question) { build(:question, questionnaire: questionnaire2, weight: 1, id: 2) }&lt;br /&gt;
    let(:questionnaire2) { build(:questionnaire, name: &amp;quot;feedback&amp;quot;, private: 0, min_question_score: 0, max_question_score: 10, instructor_id: 1234) }&lt;br /&gt;
    let(:reviewer1) { build(:participant, id: 2) }&lt;br /&gt;
    let score = {}&lt;br /&gt;
    let(:team_user) { build(:team_user, team: 2, user: 2) }&lt;br /&gt;
    let(:feedback_response) { build(:response, id: 2, map_id: 2, scores: [feedback]) }&lt;br /&gt;
    let(:feedback_response_map) { build(:response_map, id: 2, reviewed_object_id: 1, reviewer_id: 2, reviewee_id: 1) }&lt;br /&gt;
&lt;br /&gt;
    before(:each) do&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:rounds_of_reviews).and_return(1)&lt;br /&gt;
      allow(on_the_fly_calc).to receive(:review_questionnaire_id).and_return(1)&lt;br /&gt;
    end&lt;br /&gt;
    context 'verifies feedback score' do&lt;br /&gt;
      it 'computes feedback score based on reviews' do&lt;br /&gt;
        expect(assignment.compute_author_feedback_scores).to eq(score)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will examine any possible edge cases that this RSpec test might not cover, and try to further elaborate upon it to ensure that the introduced functionality is safe to add to the Expertiza beta branch.&lt;br /&gt;
&lt;br /&gt;
Also, we will prepare instructions testers can use when interacting with our final result, so that they can quickly find our functionality and evaluate its performance.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138635</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138635"/>
		<updated>2021-04-06T02:50:21Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Files to be changed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be Changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
#app/views/reports/_team_score.html.erb&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138634</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138634"/>
		<updated>2021-04-06T02:49:50Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Files to be changed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to complete this project:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138633</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138633"/>
		<updated>2021-04-06T02:49:26Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Files to be changed'''=&lt;br /&gt;
The below files are expected to receive edits by our group to introduce this column to the page:&lt;br /&gt;
#app/views/reports/_review_report.html.erb&lt;br /&gt;
#app/controllers/review_mapping_controller.rb&lt;br /&gt;
#app/models/on_the_fly_calc.rb&lt;br /&gt;
#app/views/reports/response_report.html.haml&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138632</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138632"/>
		<updated>2021-04-06T02:46:32Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column. To accommodate for this additional column being introduced, the &amp;quot;Team reviewed&amp;quot; column width would be reduced a bit so that the &amp;quot;Scores&amp;quot; column renders approximately at the same location on the page.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138631</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138631"/>
		<updated>2021-04-06T02:44:57Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter (i.e. code that removes the missing entries represented by the dashes) to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138630</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138630"/>
		<updated>2021-04-06T02:42:33Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Goal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
#Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
#In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
#Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138629</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138629"/>
		<updated>2021-04-06T02:42:00Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Goal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
1. Our primary goal is to take the author feedback column functionality from the 2018 branch and update it so that it merges successfully with the current beta branch.&lt;br /&gt;
2. In the 2018 branch, there is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it to follow the DRY principle.&lt;br /&gt;
3. Part of the 2018 group's feedback said that the review report UI began to look somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable. So we will make it so that the column is dynamic and will only be present if there is author feedback to display. The user could then toggle the column to show or hide that information depending on their own preference.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138628</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138628"/>
		<updated>2021-04-06T02:36:00Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
In addition, the 2018 group's branch has the author feedback in its own column in-between &amp;quot;AVG score&amp;quot; and &amp;quot;Metrics&amp;quot;. Instead, we will move it under the same header column &amp;quot;Scores&amp;quot; as seen in the current beta branch, just to the right of the &amp;quot;AVG Score&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138627</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138627"/>
		<updated>2021-04-06T02:33:27Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Currently, in the 2018 group's branch, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Though, this does not appear to be the case in the most recent beta branch available in 2021. Therefore, we would add this filter to the missing entries available in the beta branch to the 2018 group's branch code.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138626</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138626"/>
		<updated>2021-04-06T02:30:04Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. Part of our task would then be to resolve those merge conflicts and port the functionality back over to the most recent beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
The existing user interface is confusing to those unfamiliar with the system, and not very intuitive or user friendly. The relationship between the &amp;quot;Reviews done&amp;quot; and &amp;quot;Score awarded/Avg. score&amp;quot; columns is also unclear. It was not immediately obvious how those entries are related. Originally it was thought that &amp;quot;Reviews done&amp;quot; column was missing an entry for the last team that was reviewed by this student, &amp;quot;M1603 team&amp;quot;, but this is not the case. We propose to offer the instructor with two different views. The first would allow the instructor to view the reviews by the round for which the reviews were completed. This way, if the student has gotten better at doing peer reviews over the time, this would be more obvious to the instructor during grading. The second would categorize the reviews based on which team the reviews were for. In the new design, the &amp;quot;Team reviewed&amp;quot; column would not be necessary, that information would exist elsewhere in the entry (either categorized by it, or serving as some form of header for the row entry). &lt;br /&gt;
&lt;br /&gt;
Currently, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Instead, it might be better if a button is rendered in their place, that allows a table, bar graph, etc. to display showing this information since visual aids are interpreted more easily. &lt;br /&gt;
&lt;br /&gt;
To a user unfamiliar with the system, the purpose of the &amp;quot;Metrics&amp;quot; column is unclear. Perhaps next to the &amp;quot;Metrics&amp;quot; text there should be a question mark icon that when the user hovers over, it explains what these metrics do and are for. Specifically, the metric &amp;quot;Avg. Volume&amp;quot; is hard to understand and therefore requires some form of an explanation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;quot;Assign grade and write comments&amp;quot; column does not have enough width to properly write a comment to the student. Instead, we would like to replace this with a button called &amp;quot;Grade&amp;quot; that will open a dialog box that contains the Grade drop-down as well as a text field to provide the comment.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138625</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138625"/>
		<updated>2021-04-06T02:28:47Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit on the beta branch. It can be seen that the &amp;quot;author feedback&amp;quot; column is not present in this view at all.&lt;br /&gt;
&lt;br /&gt;
[[File:beta_view.PNG |1000px|]]&lt;br /&gt;
&lt;br /&gt;
Here is the 2018 group's version of the page we are editing. It has the &amp;quot;author feedback&amp;quot; column as well as the necessary functionality. However, the user interface has clearly changed since 2018, and therefore, there will likely be merge conflicts between their branch and the current beta branch. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png |1000px|]]&lt;br /&gt;
&lt;br /&gt;
The existing user interface is confusing to those unfamiliar with the system, and not very intuitive or user friendly. The relationship between the &amp;quot;Reviews done&amp;quot; and &amp;quot;Score awarded/Avg. score&amp;quot; columns is also unclear. It was not immediately obvious how those entries are related. Originally it was thought that &amp;quot;Reviews done&amp;quot; column was missing an entry for the last team that was reviewed by this student, &amp;quot;M1603 team&amp;quot;, but this is not the case. We propose to offer the instructor with two different views. The first would allow the instructor to view the reviews by the round for which the reviews were completed. This way, if the student has gotten better at doing peer reviews over the time, this would be more obvious to the instructor during grading. The second would categorize the reviews based on which team the reviews were for. In the new design, the &amp;quot;Team reviewed&amp;quot; column would not be necessary, that information would exist elsewhere in the entry (either categorized by it, or serving as some form of header for the row entry). &lt;br /&gt;
&lt;br /&gt;
Currently, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Instead, it might be better if a button is rendered in their place, that allows a table, bar graph, etc. to display showing this information since visual aids are interpreted more easily. &lt;br /&gt;
&lt;br /&gt;
To a user unfamiliar with the system, the purpose of the &amp;quot;Metrics&amp;quot; column is unclear. Perhaps next to the &amp;quot;Metrics&amp;quot; text there should be a question mark icon that when the user hovers over, it explains what these metrics do and are for. Specifically, the metric &amp;quot;Avg. Volume&amp;quot; is hard to understand and therefore requires some form of an explanation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;quot;Assign grade and write comments&amp;quot; column does not have enough width to properly write a comment to the student. Instead, we would like to replace this with a button called &amp;quot;Grade&amp;quot; that will open a dialog box that contains the Grade drop-down as well as a text field to provide the comment.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138624</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138624"/>
		<updated>2021-04-06T02:24:26Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit. &lt;br /&gt;
&lt;br /&gt;
[[File:beta_view_crop.PNG]]&lt;br /&gt;
&lt;br /&gt;
(Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png]]&lt;br /&gt;
&lt;br /&gt;
The existing user interface is confusing to those unfamiliar with the system, and not very intuitive or user friendly. The relationship between the &amp;quot;Reviews done&amp;quot; and &amp;quot;Score awarded/Avg. score&amp;quot; columns is also unclear. It was not immediately obvious how those entries are related. Originally it was thought that &amp;quot;Reviews done&amp;quot; column was missing an entry for the last team that was reviewed by this student, &amp;quot;M1603 team&amp;quot;, but this is not the case. We propose to offer the instructor with two different views. The first would allow the instructor to view the reviews by the round for which the reviews were completed. This way, if the student has gotten better at doing peer reviews over the time, this would be more obvious to the instructor during grading. The second would categorize the reviews based on which team the reviews were for. In the new design, the &amp;quot;Team reviewed&amp;quot; column would not be necessary, that information would exist elsewhere in the entry (either categorized by it, or serving as some form of header for the row entry). &lt;br /&gt;
&lt;br /&gt;
Currently, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Instead, it might be better if a button is rendered in their place, that allows a table, bar graph, etc. to display showing this information since visual aids are interpreted more easily. &lt;br /&gt;
&lt;br /&gt;
To a user unfamiliar with the system, the purpose of the &amp;quot;Metrics&amp;quot; column is unclear. Perhaps next to the &amp;quot;Metrics&amp;quot; text there should be a question mark icon that when the user hovers over, it explains what these metrics do and are for. Specifically, the metric &amp;quot;Avg. Volume&amp;quot; is hard to understand and therefore requires some form of an explanation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;quot;Assign grade and write comments&amp;quot; column does not have enough width to properly write a comment to the student. Instead, we would like to replace this with a button called &amp;quot;Grade&amp;quot; that will open a dialog box that contains the Grade drop-down as well as a text field to provide the comment.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Beta_view_crop.PNG&amp;diff=138623</id>
		<title>File:Beta view crop.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Beta_view_crop.PNG&amp;diff=138623"/>
		<updated>2021-04-06T02:23:02Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Beta_view.PNG&amp;diff=138622</id>
		<title>File:Beta view.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Beta_view.PNG&amp;diff=138622"/>
		<updated>2021-04-06T02:19:15Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138621</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138621"/>
		<updated>2021-04-06T02:19:01Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit. &lt;br /&gt;
&lt;br /&gt;
[[File: beta_view.png]]&lt;br /&gt;
&lt;br /&gt;
(Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png]]&lt;br /&gt;
&lt;br /&gt;
The existing user interface is confusing to those unfamiliar with the system, and not very intuitive or user friendly. The relationship between the &amp;quot;Reviews done&amp;quot; and &amp;quot;Score awarded/Avg. score&amp;quot; columns is also unclear. It was not immediately obvious how those entries are related. Originally it was thought that &amp;quot;Reviews done&amp;quot; column was missing an entry for the last team that was reviewed by this student, &amp;quot;M1603 team&amp;quot;, but this is not the case. We propose to offer the instructor with two different views. The first would allow the instructor to view the reviews by the round for which the reviews were completed. This way, if the student has gotten better at doing peer reviews over the time, this would be more obvious to the instructor during grading. The second would categorize the reviews based on which team the reviews were for. In the new design, the &amp;quot;Team reviewed&amp;quot; column would not be necessary, that information would exist elsewhere in the entry (either categorized by it, or serving as some form of header for the row entry). &lt;br /&gt;
&lt;br /&gt;
Currently, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Instead, it might be better if a button is rendered in their place, that allows a table, bar graph, etc. to display showing this information since visual aids are interpreted more easily. &lt;br /&gt;
&lt;br /&gt;
To a user unfamiliar with the system, the purpose of the &amp;quot;Metrics&amp;quot; column is unclear. Perhaps next to the &amp;quot;Metrics&amp;quot; text there should be a question mark icon that when the user hovers over, it explains what these metrics do and are for. Specifically, the metric &amp;quot;Avg. Volume&amp;quot; is hard to understand and therefore requires some form of an explanation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;quot;Assign grade and write comments&amp;quot; column does not have enough width to properly write a comment to the student. Instead, we would like to replace this with a button called &amp;quot;Grade&amp;quot; that will open a dialog box that contains the Grade drop-down as well as a text field to provide the comment.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138616</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138616"/>
		<updated>2021-04-06T02:05:20Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already, but that is in an older version of Expertiza. Our primary task is then to follow their implementation, refactor any code that may require it, make the suggested improvements that were left in their project feedback and make the feature compatible with the latest beta branch of Expertiza.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png]]&lt;br /&gt;
&lt;br /&gt;
The existing user interface is confusing to those unfamiliar with the system, and not very intuitive or user friendly. The relationship between the &amp;quot;Reviews done&amp;quot; and &amp;quot;Score awarded/Avg. score&amp;quot; columns is also unclear. It was not immediately obvious how those entries are related. Originally it was thought that &amp;quot;Reviews done&amp;quot; column was missing an entry for the last team that was reviewed by this student, &amp;quot;M1603 team&amp;quot;, but this is not the case. We propose to offer the instructor with two different views. The first would allow the instructor to view the reviews by the round for which the reviews were completed. This way, if the student has gotten better at doing peer reviews over the time, this would be more obvious to the instructor during grading. The second would categorize the reviews based on which team the reviews were for. In the new design, the &amp;quot;Team reviewed&amp;quot; column would not be necessary, that information would exist elsewhere in the entry (either categorized by it, or serving as some form of header for the row entry). &lt;br /&gt;
&lt;br /&gt;
Currently, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Instead, it might be better if a button is rendered in their place, that allows a table, bar graph, etc. to display showing this information since visual aids are interpreted more easily. &lt;br /&gt;
&lt;br /&gt;
To a user unfamiliar with the system, the purpose of the &amp;quot;Metrics&amp;quot; column is unclear. Perhaps next to the &amp;quot;Metrics&amp;quot; text there should be a question mark icon that when the user hovers over, it explains what these metrics do and are for. Specifically, the metric &amp;quot;Avg. Volume&amp;quot; is hard to understand and therefore requires some form of an explanation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;quot;Assign grade and write comments&amp;quot; column does not have enough width to properly write a comment to the student. Instead, we would like to replace this with a button called &amp;quot;Grade&amp;quot; that will open a dialog box that contains the Grade drop-down as well as a text field to provide the comment.&lt;br /&gt;
&lt;br /&gt;
='''Test Plan'''=&lt;br /&gt;
to be added&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138585</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138585"/>
		<updated>2021-04-01T02:16:00Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already. Our primary task is then to understand their implementation, refactor any code that may require it, and make the suggested improvements that were left in their project feedback.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit. (Sourced from this [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1876_Completion/Progress_view link])&lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png]]&lt;br /&gt;
&lt;br /&gt;
The existing user interface is confusing to those unfamiliar with the system, and not very intuitive or user friendly. The relationship between the &amp;quot;Reviews done&amp;quot; and &amp;quot;Score awarded/Avg. score&amp;quot; columns is also unclear. It was not immediately obvious how those entries are related. Originally it was thought that &amp;quot;Reviews done&amp;quot; column was missing an entry for the last team that was reviewed by this student, &amp;quot;M1603 team&amp;quot;, but this is not the case. We propose to offer the instructor with two different views. The first would allow the instructor to view the reviews by the round for which the reviews were completed. This way, if the student has gotten better at doing peer reviews over the time, this would be more obvious to the instructor during grading. The second would categorize the reviews based on which team the reviews were for. In the new design, the &amp;quot;Team reviewed&amp;quot; column would not be necessary, that information would exist elsewhere in the entry (either categorized by it, or serving as some form of header for the row entry). &lt;br /&gt;
&lt;br /&gt;
Currently, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Instead, it might be better if a button is rendered in their place, that allows a table, bar graph, etc. to display showing this information since visual aids are interpreted more easily. &lt;br /&gt;
&lt;br /&gt;
To a user unfamiliar with the system, the purpose of the &amp;quot;Metrics&amp;quot; column is unclear. Perhaps next to the &amp;quot;Metrics&amp;quot; text there should be a question mark icon that when the user hovers over, it explains what these metrics do and are for. Specifically, the metric &amp;quot;Avg. Volume&amp;quot; is hard to understand and therefore requires some form of an explanation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;quot;Assign grade and write comments&amp;quot; column does not have enough width to properly write a comment to the student. Instead, we would like to replace this with a button called &amp;quot;Grade&amp;quot; that will open a dialog box that contains the Grade drop-down as well as a text field to provide the comment.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138584</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138584"/>
		<updated>2021-04-01T02:06:00Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already. Our primary task is then to understand their implementation, refactor any code that may require it, and make the suggested improvements that were left in their project feedback.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;br /&gt;
&lt;br /&gt;
='''Design'''=&lt;br /&gt;
Below is the current implementation of the page we are going to edit. &lt;br /&gt;
&lt;br /&gt;
[[File:impl_screenshot.png]]&lt;br /&gt;
&lt;br /&gt;
The existing user interface is confusing to those unfamiliar with the system, and not very intuitive or user friendly. The relationship between the &amp;quot;Reviews done&amp;quot; and &amp;quot;Score awarded/Avg. score&amp;quot; columns is also unclear. It was not immediately obvious how those entries are related. Originally it was thought that &amp;quot;Reviews done&amp;quot; column was missing an entry for the last team that was reviewed by this student, &amp;quot;M1603 team&amp;quot;, but this is not the case. We propose to offer the instructor with two different views. The first would allow the instructor to view the reviews by the round for which the reviews were completed. This way, if the student has gotten better at doing peer reviews over the time, this would be more obvious to the instructor during grading. The second would categorize the reviews based on which team the reviews were for. In the new design, the &amp;quot;Team reviewed&amp;quot; column would not be necessary, that information would exist elsewhere in the entry (either categorized by it, or serving as some form of header for the row entry). &lt;br /&gt;
&lt;br /&gt;
Currently, the entries in the &amp;quot;Score awarded/Avg. score&amp;quot; and &amp;quot;Author Feedback Score&amp;quot; columns contain a lot of missing entries. Instead, it might be better if a button is rendered in their place, that allows a table, bar graph, etc. to display showing this information since visual aids are interpreted more easily. &lt;br /&gt;
&lt;br /&gt;
To a user unfamiliar with the system, the purpose of the &amp;quot;Metrics&amp;quot; column is unclear. Perhaps next to the &amp;quot;Metrics&amp;quot; text there should be a question mark icon that when the user hovers over, it explains what these metrics do and are for. Specifically, the metric &amp;quot;Avg. Volume&amp;quot; is hard to understand and therefore requires some form of an explanation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;quot;Assign grade and write comments&amp;quot; column does not have enough width to properly write a comment to the student. Instead, we would like to replace this with a button called &amp;quot;Grade&amp;quot; that will open a dialog box that contains the Grade drop-down as well as a text field to provide the comment.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Impl_screenshot.png&amp;diff=138569</id>
		<title>File:Impl screenshot.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Impl_screenshot.png&amp;diff=138569"/>
		<updated>2021-04-01T01:32:02Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: Jwhostet uploaded a new version of File:Impl screenshot.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of review report page&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138545</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138545"/>
		<updated>2021-04-01T01:04:51Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already. Our primary task is then to understand their implementation, refactor any code that may require it, and make the suggested improvements that were left in their project feedback.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
There is an author feedback column to the review report, but the previous team's submission added new code to calculate the average. However, this most likely already exists somewhere else in the system, and so we will identify where that functionality exists and refactor the code to reuse it.&lt;br /&gt;
&lt;br /&gt;
In addition, the review report UI is said to be somewhat crowded in its appearance. However, there is often no author feedback, and so the column for that should be made toggleable.&lt;br /&gt;
&lt;br /&gt;
Use wrapping for the reviewer column.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138543</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138543"/>
		<updated>2021-04-01T00:56:59Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
Expertiza allows users to complete peer reviews on fellow students' work. However, not all peer reviews are helpful, and some are more useful than others. Therefore, the application allows for the project's authors to provide feedback on the peer review, this is called &amp;quot;author feedback.&amp;quot; The instructors have no easy way to access the author feedback while grading peer reviews, which would be a useful feature to have since this shows how helpful the peer review actually was to the group that received it. Thus, making the author feedback more accessible is the aim of this project. However, a group in 2018 was tasked with this project as well, and most of the functionality appears to have been implemented already. Our primary task is then to understand their implementation, refactor any code that may require it, and make the suggested improvements that were left in their project feedback.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
&lt;br /&gt;
The aim of this project is to build this into the system. We need an additional column in the 'Review Report' page for reviews which shows the calculation of the author feedback. This will help instructor's to know how the reviews proved useful to the authors/team. The aim of this project is to integrate the author feedback column in the summary page&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138542</id>
		<title>CSC/ECE 517 Spring 2021 - E2109. Completion/Progress view</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2109._Completion/Progress_view&amp;diff=138542"/>
		<updated>2021-04-01T00:45:05Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Problem Statement'''=&lt;br /&gt;
A key component of Expertiza is peer reviews, which provide feedback to authors so that they can improve their work. Expertiza also supports grading of these reviews to ensure students write quality reviews, helping them learn more about the assignment by looking at their peers' work. In addition, Expertiza allows for metareviews, which are reviews the authors of the original work write for the reviews of their original work. This author feedback is useful for grading the reviews because it indicates how helpful this review was to the authors of the original work. The objective of this project is to add metareview or author feedback information to the review report page, which shows a summary of all the reviews written by the students for an assignment.&lt;br /&gt;
&lt;br /&gt;
In Expertiza, peer reviews are used as a metric to evaluate someone’s project. Once someone has peer reviewed a project, the authors of the project can also provide feedback for this review, called “author feedback.” While grading peer reviews, it would be nice for the instructors to include the author feedback, since it shows how helpful the peer review actually was to the author of the project. Currently, however, the instructor has no easy way of seeing the author-feedback scores, so it would be far too much trouble to include them in grades for reviewing.  The aim of this project is to build this into the system.&lt;br /&gt;
&lt;br /&gt;
='''Goal'''=&lt;br /&gt;
&lt;br /&gt;
The aim of this project is to build this into the system. We need an additional column in the 'Review Report' page for reviews which shows the calculation of the author feedback. This will help instructor's to know how the reviews proved useful to the authors/team. The aim of this project is to integrate the author feedback column in the summary page&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138217</id>
		<title>CSC/ECE 517 Spring 2021 - E2101. Refactor questionnaires controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138217"/>
		<updated>2021-03-20T02:39:41Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Team members'''==&lt;br /&gt;
* Waseem Hanna&lt;br /&gt;
* JP Villamor&lt;br /&gt;
* John Wesley Hostetter&lt;br /&gt;
&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
There are various types of questionnaires that a user can create in Expertiza. These questionnaires assist in evaluating submissions and teammate contributions. &lt;br /&gt;
&lt;br /&gt;
=='''Problem statement'''==&lt;br /&gt;
Questionnaire is a superclass to many different types of questionnaires offered in Expertiza. The Questionnaire controller is responsible for creating, displaying and managing these items. Therefore, due to the importance of this controller, refactoring it was of interest to help improve the readability of its features.&lt;br /&gt;
* Replaced literal values with defined constants to aid in the understanding of code behavior.&lt;br /&gt;
* Investigated whether the method create_questionnaire is used.&lt;br /&gt;
* Fixed the methods that have a questionnaire_id as a parameter, as it is not needed, since those methods should be contained within the model class anyways.&lt;br /&gt;
* Removed one of three checks for QuizQuestionnaire.&lt;br /&gt;
* Corrected the dropdown's default alternatives to reflect the questionnaire's min and max question score.&lt;br /&gt;
* Updated the dropdown's RSpec test to reflect the change in behavior.&lt;br /&gt;
* Discovered more software faults.&lt;br /&gt;
* Moved three of four private methods from the controller to the model.&lt;br /&gt;
&lt;br /&gt;
=='''Results for investigating create_questionnaire'''==&lt;br /&gt;
The reason for this method is when there is a teaching assistant that is creating a questionnaire for an instructor, the questionnaire's instructor_id field is assigned to be the instructor of the course, instead of the user's (in this case, the TA). The RSpec test for this method expects that the application will be redirected to tree_display after calling this method, therefore it is unclear if the application could instead redirect to questionnaires/edit, or if it has to redirect to tree_display. The normal create function assigns the questionnaire's instructor_id as the id of the current user, and redirects to questionnaires/edit. However, we have not seen an instance where create_questionnaire is used, except in the RSpec test. Thus, it may be possible to move some of the code from create_questionnaire into the create method, if the RSpec test can be safely deleted. Though, we do not know if that is the case.&lt;br /&gt;
&lt;br /&gt;
=='''Methods that had questionnaire_id as a parameter'''==&lt;br /&gt;
Some methods in the Questionnaire controller had a parameter called questionnaire_id, and it was suspected that we could use params[:id] instead. However, we found that those methods were also private and should instead be in the model class. By moving those methods to the model class, we were able to remove the questionnaire_id parameter, and in some cases replace it with a params argument instead.&lt;br /&gt;
&lt;br /&gt;
=='''Checking for QuizQuestionnaire'''==&lt;br /&gt;
The Questionnaire controller checks to see if the questionnaire type is QuizQuestionnaire, and it is believed that this may be unnecessary. We were able to eliminate one of three checks in the code, namely, the method save_new_questions which has been moved to the model class.&lt;br /&gt;
&lt;br /&gt;
=='''Dropdown default alternatives'''==&lt;br /&gt;
Before our refactoring, the dropdown had a default literal value of '0|1|2|3|4|5' which was an error. This is an error because it is possible it exceeded the default value of the questionnaire max question score or allowed for points below the questionnaire min question score. Instead, this was replaced with code to make the dropdown's alternatives more responsive to the Questionnaire's min/max question score. However, we noticed that when the Questionnaire's min/max question score is edited after it has been created, the dropdown's alternatives could violate the new constraints, and also upon adding a new item e.g. dropdown, the edited (but not saved) min/max question score is reset to the initial values that were set upon creation of the Questionnaire. &lt;br /&gt;
&lt;br /&gt;
=='''Dropdown's RSpec test'''==&lt;br /&gt;
Upon fixing the dropdown's behavior, the RSpec test did not meet the expected behavior since before the alternatives were hardcoded in. So, now the dropdown code requires the min/max question score to be set in the questionnaire it is assigned to, so that the default value for the dropdown's alternatives do not violate the constraints of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
=='''Discovered more software faults'''==&lt;br /&gt;
See '''Dropdown default alternatives'''.&lt;br /&gt;
&lt;br /&gt;
=='''Extract private methods from controller to model'''==&lt;br /&gt;
Three of the four private methods that were in the controller were able to be removed and placed within the Questionnaire model class. The remaining private method called save was left in the controller since RSpec tests expected to find it in that location, and it appeared to be tightly coupled with existing functionality.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138216</id>
		<title>CSC/ECE 517 Spring 2021 - E2101. Refactor questionnaires controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138216"/>
		<updated>2021-03-20T02:37:52Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Team Members'''==&lt;br /&gt;
* Waseem Hanna&lt;br /&gt;
* JP Villamor&lt;br /&gt;
* John Wesley Hostetter&lt;br /&gt;
&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
There are various types of questionnaires that a user can create in Expertiza. These questionnaires assist in evaluating submissions and teammate contributions. &lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
Questionnaire is a superclass to many different types of questionnaires offered in Expertiza. The Questionnaire controller is responsible for creating, displaying and managing these items. Therefore, due to the importance of this controller, refactoring it was of interest to help improve the readability of its features.&lt;br /&gt;
* Replaced literal values with defined constants to aid in the understanding of code behavior.&lt;br /&gt;
* Investigated whether the method create_questionnaire is used.&lt;br /&gt;
* Fixed the methods that have a questionnaire_id as a parameter, as it is not needed, since those methods should be contained within the model class anyways.&lt;br /&gt;
* Removed one of three checks for QuizQuestionnaire.&lt;br /&gt;
* Corrected the dropdown's default alternatives to reflect the questionnaire's min and max question score.&lt;br /&gt;
* Updated the dropdown's RSpec test to reflect the change in behavior.&lt;br /&gt;
* Discovered more software faults.&lt;br /&gt;
* Moved three of four private methods from the controller to the model.&lt;br /&gt;
&lt;br /&gt;
=='''Results for Investigating create_questionnaire'''==&lt;br /&gt;
The reason for this method is when there is a teaching assistant that is creating a questionnaire for an instructor, the questionnaire's instructor_id field is assigned to be the instructor of the course, instead of the user's (in this case, the TA). The RSpec test for this method expects that the application will be redirected to tree_display after calling this method, therefore it is unclear if the application could instead redirect to questionnaires/edit, or if it has to redirect to tree_display. The normal create function assigns the questionnaire's instructor_id as the id of the current user, and redirects to questionnaires/edit. However, we have not seen an instance where create_questionnaire is used, except in the RSpec test. Thus, it may be possible to move some of the code from create_questionnaire into the create method, if the RSpec test can be safely deleted. Though, we do not know if that is the case.&lt;br /&gt;
&lt;br /&gt;
=='''Methods that had questionnaire_id as a parameter'''==&lt;br /&gt;
Some methods in the Questionnaire controller had a parameter called questionnaire_id, and it was suspected that we could use params[:id] instead. However, we found that those methods were also private and should instead be in the model class. By moving those methods to the model class, we were able to remove the questionnaire_id parameter, and in some cases replace it with a params argument instead.&lt;br /&gt;
&lt;br /&gt;
=='''Checking for QuizQuestionnaire'''==&lt;br /&gt;
The Questionnaire controller checks to see if the questionnaire type is QuizQuestionnaire, and it is believed that this may be unnecessary. We were able to eliminate one of three checks in the code, namely, the method save_new_questions which has been moved to the model class.&lt;br /&gt;
&lt;br /&gt;
=='''Dropdown default alternatives'''==&lt;br /&gt;
Before our refactoring, the dropdown had a default literal value of '0|1|2|3|4|5' which was an error. This is an error because it is possible it exceeded the default value of the questionnaire max question score or allowed for points below the questionnaire min question score. Instead, this was replaced with code to make the dropdown's alternatives more responsive to the Questionnaire's min/max question score. However, we noticed that when the Questionnaire's min/max question score is edited after it has been created, the dropdown's alternatives could violate the new constraints, and also upon adding a new item e.g. dropdown, the edited (but not saved) min/max question score is reset to the initial values that were set upon creation of the Questionnaire. &lt;br /&gt;
&lt;br /&gt;
=='''Dropdown's RSpec test'''==&lt;br /&gt;
Upon fixing the dropdown's behavior, the RSpec test did not meet the expected behavior since before the alternatives were hardcoded in. So, now the dropdown code requires the min/max question score to be set in the questionnaire it is assigned to, so that the default value for the dropdown's alternatives do not violate the constraints of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
=='''Discovered more software faults'''==&lt;br /&gt;
See '''Dropdown default alternatives'''.&lt;br /&gt;
&lt;br /&gt;
=='''Extract private methods from controller to model'''==&lt;br /&gt;
Three of the four private methods that were in the controller were able to be removed and placed within the Questionnaire model class. The remaining private method called save was left in the controller since RSpec tests expected to find it in that location, and it appeared to be tightly coupled with existing functionality.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138215</id>
		<title>CSC/ECE 517 Spring 2021 - E2101. Refactor questionnaires controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138215"/>
		<updated>2021-03-20T02:35:22Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
There are various types of questionnaires that a user can create in Expertiza. These questionnaires assist in evaluating submissions and teammate contributions. &lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
Questionnaire is a superclass to many different types of questionnaires offered in Expertiza. The Questionnaire controller is responsible for creating, displaying and managing these items. Therefore, due to the importance of this controller, refactoring it was of interest to help improve the readability of its features.&lt;br /&gt;
* Replaced literal values with defined constants to aid in the understanding of code behavior.&lt;br /&gt;
* Investigated whether the method create_questionnaire is used.&lt;br /&gt;
* Fixed the methods that have a questionnaire_id as a parameter, as it is not needed, since those methods should be contained within the model class anyways.&lt;br /&gt;
* Removed one of three checks for QuizQuestionnaire.&lt;br /&gt;
* Corrected the dropdown's default alternatives to reflect the questionnaire's min and max question score.&lt;br /&gt;
* Updated the dropdown's RSpec test to reflect the change in behavior.&lt;br /&gt;
* Discovered more software faults.&lt;br /&gt;
* Moved three of four private methods from the controller to the model.&lt;br /&gt;
&lt;br /&gt;
=='''Results for Investigating create_questionnaire'''==&lt;br /&gt;
The reason for this method is when there is a teaching assistant that is creating a questionnaire for an instructor, the questionnaire's instructor_id field is assigned to be the instructor of the course, instead of the user's (in this case, the TA). The RSpec test for this method expects that the application will be redirected to tree_display after calling this method, therefore it is unclear if the application could instead redirect to questionnaires/edit, or if it has to redirect to tree_display. The normal create function assigns the questionnaire's instructor_id as the id of the current user, and redirects to questionnaires/edit. However, we have not seen an instance where create_questionnaire is used, except in the RSpec test. Thus, it may be possible to move some of the code from create_questionnaire into the create method, if the RSpec test can be safely deleted. Though, we do not know if that is the case.&lt;br /&gt;
&lt;br /&gt;
=='''Methods that had questionnaire_id as a parameter'''==&lt;br /&gt;
Some methods in the Questionnaire controller had a parameter called questionnaire_id, and it was suspected that we could use params[:id] instead. However, we found that those methods were also private and should instead be in the model class. By moving those methods to the model class, we were able to remove the questionnaire_id parameter, and in some cases replace it with a params argument instead.&lt;br /&gt;
&lt;br /&gt;
=='''Checking for QuizQuestionnaire'''==&lt;br /&gt;
The Questionnaire controller checks to see if the questionnaire type is QuizQuestionnaire, and it is believed that this may be unnecessary. We were able to eliminate one of three checks in the code, namely, the method save_new_questions which has been moved to the model class.&lt;br /&gt;
&lt;br /&gt;
=='''Dropdown default alternatives'''==&lt;br /&gt;
Before our refactoring, the dropdown had a default literal value of '0|1|2|3|4|5' which was an error. This is an error because it is possible it exceeded the default value of the questionnaire max question score or allowed for points below the questionnaire min question score. Instead, this was replaced with code to make the dropdown's alternatives more responsive to the Questionnaire's min/max question score. However, we noticed that when the Questionnaire's min/max question score is edited after it has been created, the dropdown's alternatives could violate the new constraints, and also upon adding a new item e.g. dropdown, the edited (but not saved) min/max question score is reset to the initial values that were set upon creation of the Questionnaire. &lt;br /&gt;
&lt;br /&gt;
=='''Dropdown's RSpec test'''==&lt;br /&gt;
Upon fixing the dropdown's behavior, the RSpec test did not meet the expected behavior since before the alternatives were hardcoded in. So, now the dropdown code requires the min/max question score to be set in the questionnaire it is assigned to, so that the default value for the dropdown's alternatives do not violate the constraints of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
=='''Discovered more software faults'''==&lt;br /&gt;
See '''Dropdown default alternatives'''.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138214</id>
		<title>CSC/ECE 517 Spring 2021 - E2101. Refactor questionnaires controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138214"/>
		<updated>2021-03-20T02:34:40Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
There are various types of questionnaires that a user can create in Expertiza. These questionnaires assist in evaluating submissions and teammate contributions. &lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
Questionnaire is a superclass to many different types of questionnaires offered in Expertiza. The Questionnaire controller is responsible for creating, displaying and managing these items. Therefore, due to the importance of this controller, refactoring it was of interest to help improve the readability of its features.&lt;br /&gt;
* Replaced literal values with defined constants to aid in the understanding of code behavior.&lt;br /&gt;
* Investigated whether the method create_questionnaire is used.&lt;br /&gt;
* Fixed the methods that have a questionnaire_id as a parameter, as it is not needed, since those methods should be contained within the model class anyways.&lt;br /&gt;
* Removed one of three checks for QuizQuestionnaire.&lt;br /&gt;
* Corrected the dropdown's default alternatives to reflect the questionnaire's min and max question score.&lt;br /&gt;
* Updated the dropdown's RSpec test to reflect the change in behavior.&lt;br /&gt;
* Discovered more software faults.&lt;br /&gt;
* Moved three of four private methods from the controller to the model.&lt;br /&gt;
&lt;br /&gt;
=='''Results for Investigating create_questionnaire'''==&lt;br /&gt;
The reason for this method is when there is a teaching assistant that is creating a questionnaire for an instructor, the questionnaire's instructor_id field is assigned to be the instructor of the course, instead of the user's (in this case, the TA). The RSpec test for this method expects that the application will be redirected to tree_display after calling this method, therefore it is unclear if the application could instead redirect to questionnaires/edit, or if it has to redirect to tree_display. The normal create function assigns the questionnaire's instructor_id as the id of the current user, and redirects to questionnaires/edit. However, we have not seen an instance where create_questionnaire is used, except in the RSpec test. Thus, it may be possible to move some of the code from create_questionnaire into the create method, if the RSpec test can be safely deleted. Though, we do not know if that is the case.&lt;br /&gt;
&lt;br /&gt;
=='''Methods that had questionnaire_id as a parameter'''==&lt;br /&gt;
Some methods in the Questionnaire controller had a parameter called questionnaire_id, and it was suspected that we could use params[:id] instead. However, we found that those methods were also private and should instead be in the model class. By moving those methods to the model class, we were able to remove the questionnaire_id parameter, and in some cases replace it with a params argument instead.&lt;br /&gt;
&lt;br /&gt;
=='''Checking for QuizQuestionnaire'''==&lt;br /&gt;
The Questionnaire controller checks to see if the questionnaire type is QuizQuestionnaire, and it is believed that this may be unnecessary. We were able to eliminate one of three checks in the code, namely, the method save_new_questions which has been moved to the model class.&lt;br /&gt;
&lt;br /&gt;
=='''Dropdown default alternatives'''==&lt;br /&gt;
Before our refactoring, the dropdown had a default literal value of '0|1|2|3|4|5' which was an error. This is an error because it is possible it exceeded the default value of the questionnaire max question score or allowed for points below the questionnaire min question score. Instead, this was replaced with code to make the dropdown's alternatives more responsive to the Questionnaire's min/max question score. However, we noticed that when the Questionnaire's min/max question score is edited after it has been created, the dropdown's alternatives could violate the new constraints, and also upon adding a new item e.g. dropdown, the edited (but not saved) min/max question score is reset to the initial values that were set upon creation of the Questionnaire. &lt;br /&gt;
&lt;br /&gt;
=='''Dropdown's RSpec test'''==&lt;br /&gt;
Upon fixing the dropdown's behavior, the RSpec test did not meet the expected behavior since before the alternatives were hardcoded in. So, now the dropdown code requires the min/max question score to be set in the questionnaire it is assigned to, so that the default value for the dropdown's alternatives do not violate the constraints of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
=='''Discovered more software faults'''==&lt;br /&gt;
See ==Dropdown default alternatives==.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138213</id>
		<title>CSC/ECE 517 Spring 2021 - E2101. Refactor questionnaires controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138213"/>
		<updated>2021-03-20T02:34:17Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
There are various types of questionnaires that a user can create in Expertiza. These questionnaires assist in evaluating submissions and teammate contributions. &lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
Questionnaire is a superclass to many different types of questionnaires offered in Expertiza. The Questionnaire controller is responsible for creating, displaying and managing these items. Therefore, due to the importance of this controller, refactoring it was of interest to help improve the readability of its features.&lt;br /&gt;
* Replaced literal values with defined constants to aid in the understanding of code behavior.&lt;br /&gt;
* Investigated whether the method create_questionnaire is used.&lt;br /&gt;
* Fixed the methods that have a questionnaire_id as a parameter, as it is not needed, since those methods should be contained within the model class anyways.&lt;br /&gt;
* Removed one of three checks for QuizQuestionnaire.&lt;br /&gt;
* Corrected the dropdown's default alternatives to reflect the questionnaire's min and max question score.&lt;br /&gt;
* Updated the dropdown's RSpec test to reflect the change in behavior.&lt;br /&gt;
* Discovered more software faults.&lt;br /&gt;
* Moved three of four private methods from the controller to the model.&lt;br /&gt;
&lt;br /&gt;
=='''Results for Investigating create_questionnaire'''==&lt;br /&gt;
The reason for this method is when there is a teaching assistant that is creating a questionnaire for an instructor, the questionnaire's instructor_id field is assigned to be the instructor of the course, instead of the user's (in this case, the TA). The RSpec test for this method expects that the application will be redirected to tree_display after calling this method, therefore it is unclear if the application could instead redirect to questionnaires/edit, or if it has to redirect to tree_display. The normal create function assigns the questionnaire's instructor_id as the id of the current user, and redirects to questionnaires/edit. However, we have not seen an instance where create_questionnaire is used, except in the RSpec test. Thus, it may be possible to move some of the code from create_questionnaire into the create method, if the RSpec test can be safely deleted. Though, we do not know if that is the case.&lt;br /&gt;
&lt;br /&gt;
=='''Methods that had questionnaire_id as a parameter'''==&lt;br /&gt;
Some methods in the Questionnaire controller had a parameter called questionnaire_id, and it was suspected that we could use params[:id] instead. However, we found that those methods were also private and should instead be in the model class. By moving those methods to the model class, we were able to remove the questionnaire_id parameter, and in some cases replace it with a params argument instead.&lt;br /&gt;
&lt;br /&gt;
=='''Checking for QuizQuestionnaire'''==&lt;br /&gt;
The Questionnaire controller checks to see if the questionnaire type is QuizQuestionnaire, and it is believed that this may be unnecessary. We were able to eliminate one of three checks in the code, namely, the method save_new_questions which has been moved to the model class.&lt;br /&gt;
&lt;br /&gt;
=='''Dropdown default alternatives'''==&lt;br /&gt;
Before our refactoring, the dropdown had a default literal value of '0|1|2|3|4|5' which was an error. This is an error because it is possible it exceeded the default value of the questionnaire max question score or allowed for points below the questionnaire min question score. Instead, this was replaced with code to make the dropdown's alternatives more responsive to the Questionnaire's min/max question score. However, we noticed that when the Questionnaire's min/max question score is edited after it has been created, the dropdown's alternatives could violate the new constraints, and also upon adding a new item e.g. dropdown, the edited (but not saved) min/max question score is reset to the initial values that were set upon creation of the Questionnaire. &lt;br /&gt;
&lt;br /&gt;
=='''Dropdown's RSpec test'''==&lt;br /&gt;
Upon fixing the dropdown's behavior, the RSpec test did not meet the expected behavior since before the alternatives were hardcoded in. So, now the dropdown code requires the min/max question score to be set in the questionnaire it is assigned to, so that the default value for the dropdown's alternatives do not violate the constraints of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
=='''Discovered more software faults'''===&lt;br /&gt;
See ===Dropdown default alternatives===.&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138210</id>
		<title>CSC/ECE 517 Spring 2021 - E2101. Refactor questionnaires controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138210"/>
		<updated>2021-03-20T02:13:02Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
There are various types of questionnaires that a user can create in Expertiza. These questionnaires assist in evaluating submissions and teammate contributions. &lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
Questionnaire is a superclass to many different types of questionnaires offered in Expertiza. The Questionnaire controller is responsible for creating, displaying and managing these items. Therefore, due to the importance of this controller, refactoring it was of interest to help improve the readability of its features.&lt;br /&gt;
* Replaced literal values with defined constants to aid in the understanding of code behavior.&lt;br /&gt;
* Investigated whether the method create_questionnaire is used.&lt;br /&gt;
* Fixed the methods that have a questionnaire_id as a parameter, as it is not needed, since those methods should be contained within the model class anyways.&lt;br /&gt;
* Removed one of three checks for QuizQuestionnaire.&lt;br /&gt;
* Corrected the dropdown's default alternatives to reflect the questionnaire's min and max question score.&lt;br /&gt;
* Updated the dropdown's RSpec test to reflect the change in behavior.&lt;br /&gt;
* Discovered more software faults.&lt;br /&gt;
* Moved three of four private methods from the controller to the model.&lt;br /&gt;
&lt;br /&gt;
=='''Solution'''==&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138209</id>
		<title>CSC/ECE 517 Spring 2021 - E2101. Refactor questionnaires controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2021_-_E2101._Refactor_questionnaires_controller.rb&amp;diff=138209"/>
		<updated>2021-03-20T01:59:04Z</updated>

		<summary type="html">&lt;p&gt;Jwhostet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
There are various types of questionnaires that a user can create in Expertiza. These questionnaires assist in evaluating submissions and teammate contributions. &lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
hi&lt;br /&gt;
&lt;br /&gt;
=='''Solution'''==&lt;/div&gt;</summary>
		<author><name>Jwhostet</name></author>
	</entry>
</feed>