CSC/ECE 517 Fall 2018 E1832. OSS Project Orange: Author feedback (rejoinder) enhancements

From Expertiza_Wiki
Jump to navigation Jump to search

Introduction

Background

Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the students to peer review other students submission. It also allows Participant of a Team to provide feedback for the review. Apart from that, it allows the instructor to view the summary report of reviews received and feedbacks given by each participant of a team.

Motivation

In current system the author feedback is send by individual team members. It would be better if one team send one single rejoinder to the review and all members could see and edit it. Also there are real usability issues with regards to how students can even navigate to the place where feedback can be given to reviewers. The UI needs to be more user friendly.

In Summary report for assignment for instructors, the author feedback section lists feedback from all team members. You should change this to list the team’s collective feedback to its reviewers to a particular assignment

Tasks Identified

  • Refactor “new_feedback” actions for adding team as reviewer for Rejoinder.
  • Refactor all the actions in response controllers to pass the participant id.
  • Refactor author feedback tab in summary report view for the instructor.
  • Change in the summary report of assignment for the instructor to display teams feedbacks.
  • In the author-feedback tab on the heat grid, fixed reviewers names on top row.
  • Summary reports navigation to the page where feedbacks are given to reviewers.


Classes

1.Team rejoinder.

  • controllers/response_controller.rb
  • views/grades/_reviews.html.erb
  • views/response/response.html.erb
  • models/vm_question_response.rb
  • models/assignment_participant.rb

2.Navigation Issue fixes

  • views/response/view.html.erb

3.Author feedback tab of summary report:

  • models/response_map.rb
  • models/team.rb
  • helpers/grades_helper.rb
  • views/grades/_author_feedback_tab.html.erb

4.Heatgrid top raw reviewer name fix:

  • views/grades/_view_heatgrid.html.erb

Solutions Implemented and Delivered

  • Changed per participant feedback display author feedback view to per team in app/views/grades/_author_feedback_tab.html.erb :

  • Added "give feedback" and edit feedback functionality in the review view(app/views/grades/_reviews.html.erb).

  • Edited grade helper to use a questionnaire to use team ID for reviews in case of a feedback(app/helpers/grades_helper.rb).

  • Refactored new_feedback method to add team ID as the reviewer Id in the response map(app/controllers/response_controller.rb).

  • Fixed a bug where a wrong assessment was being returned for a feedback because the map was searched on participant id instead of reviewee id.

So added a new method which will return a feedback assessment(app/models/response_map.rb).

Output

Issue #622 Assuming a team of two students student559 and student567, and that they have gotten a review from student563. 1. Click Manage-Impersonate User, type username “student559”, then click impersonate.

2. Choose assignment Test Test, go to Your score, and click Review 1, like the screenshot shows, there is an option for giving feedback 3. Now, impersonate user “student567”, choose assignment Test Test, go to Your score, and click Review 1, you can see the same feedback commit "TESTING Feedback". with an option to Edit Feedback

Issue#895

1. Login as an instructor and Click Manage-Assignment, under assignment Test Test, click view scores.

2. Choose Team 1, and click Author Feedback, you can see the feedback is given by the team, not individual student.

Issue#1191 In the above screenshot, you can see that the top row of heat grid is fixed to show the name of Student to whom the feedback is given(in this case to student563). And the link will take you to the review

Testing

Fixed the existing test cases for the review feedback by a team instead of a team member.

Test Plan

  • Should test that if there is no rejoinder for the review then it redirects to new author feedback page.
  • Tests that the other teammate is able to edit.
  • The page is redirecting back to the View->review.
  • Tests that the rejoinder by a participant of a team is saved properly.

Tests

Context 'when current response is nil' do

     it 'redirects to response#new page' do
       allow(FeedbackResponseMap).to receive(:where).with(reviewed_object_id: 1, reviewer_id: 1).and_return([])
       params = {id: 1, participant_id: 1}
       session = {user: instructor}
       get :new_feedback, params, session
       expect(response).to redirect_to('/response/new?id=2&participant_id=1&return=feedback')
     end
   end

describe '#feedback' do

   it 'returns corrsponding author feedback responses given by current participant' do
      allow(FeedbackResponseMap).to receive(:get_feedback_assessments_for).with(participant.team).and_return([response])
     expect(participant.feedback).to eq([response])
   end
 end