CSC/ECE 517 Fall 2019 - Project E1973. Team Based Reviewing: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 87: Line 87:
# Logout and login as student7340. Navigate back to the review response and click "View".
# Logout and login as student7340. Navigate back to the review response and click "View".
# Verify that the changes made by student7341 are present in the response.
# Verify that the changes made by student7341 are present in the response.
'''Students cannot edit the response at the same time:<br>'''
''Prerequisites: Same as the above test.''
# Repeat steps 1-11 (inclusive) from the above test.<br>
# Open another browser and navigate to Expertiza. Then, login as student7341.<br>
# Navigate to the assignment and click "Edit". Verify that you are redirected and unable to edit the review response since student7340 is already editing it.<br>
# Try clicking "View". Verify that you are unable to view the review response here either.<br>


== Students cannot edit the response at the same time: ==
== Students cannot edit the response at the same time: ==

Revision as of 20:08, 15 November 2019

Introduction - Purpose & Problem

Currently, reviews of other student’s work can only be performed by individual students in Expertiza, not by groups of students. Since doing reviews together could help students learn more than by doing them alone, it has been requested that reviews must now have the option to be done by teams instead of individual participants. Therefore, there should be an option when creating assignments that allows the creator to select whether the assignment will use team reviewers or individual reviewers. For simplification, we were allowed to assume that the teams that worked on an assignment together would review together. Each participant should be able to make individual changes to the review (while logged in from their account), but these changes should apply to the team’s collective review. This creates an issue where teammates could accidentally overwrite each other’s work if they edit the review at once. Therefore, it has been decided that the review should be locked while one edits it so that only one participant can edit it at once. Locking the review presents its own challenges.

Proposed Solution

  • Modification to Response Map Classes
    • A field should be added to ResponseMap which indicates whether responses are done by teams or by individuals.
  • Modification to Assignment Class
    • A field indicating if the assignment is to be done with team or individuals. This is necessary because part of the suggested requirements is to add a drop down on the review strategy section of the assignment.
  • Locking Solution
    • Research needs to be done as to whether a rails mechanism already exists to facilitate a lock on page edits
    • A solution can be implemented from scratch by storing a flag in the database on the review’s table entry. This would require an additional migration.
    • The ability to have a lock on a review requires the implementation of some kind of auto-unlock feature. If a user never unlocks a review, his/her teammates still need to be able to modify the review.
      • We should be able to use the “updated at” field to check if the lock has been held for too long and needs to be released.

Changes to Code

  • review_response_map.rb (migration required)
    • Field - reviewer_is_team: boolean
  • review_mapping_controller.rb - update the following methods to use AssignmentTeam as well as AssignmentParticipant as the reviewer
    • automatic_review_mapping()
    • add_calibration()
    • assign_reviewer_dynamically()
    • get_reviewer()
  • assignment.rb (migration required)
    • Field - has_team_reviews: boolean
  • assignment_controller.rb
    • update new() and create() methods to handle new field has_team_reviews
  • assignment ui files - add check box for has_team_reviews

Changes Represented in UML

UI Changes

Assignment Review Strategy

Before

After

Assign Reviewers

Before

After

Test Plan

Rspec

Our primary purpose for rspec testing will involve ensuring that we haven't broken any existing functionality. Since our new functionality doesn't involve any model/view/controller additions, our tests will be appended to existing rspec tests inside of:

  • assignments_controller_spec.rb
  • response_controller_spec.rb
  • review_mapping_controller_spec.rb

The new functionality we need to test should primarily ensure that:

  • Students on the same team can see each other's review responses
  • No two students can edit a review at the same time
  • Reviews submitted by teams are treated identically to reviews submitted by individuals

UI Testing

Our UI tests aim to capture the following core pieces of functionality:

Students on the same team can view/edit the same response:


Prerequisites: instructor6, student7339, student7340, and student7341 exist in the system. This test assumes student7340 and 7341 are on a team.

  1. Login as instructor6 with password "password".
  2. Navigate to Manage -> Assignments and click to add a new assignment.
  3. Fill in the neccessary fields for rubrics by setting Review to "Peer Review Rubric Example" and Author Feedback to "Area of Focus". Under Review Strategy, check the box "Are Reviewers Teams?". Finally, under Due Dates, set number of rounds to 1. Set due dates such that all are in the future. Make sure to give the assignment a unique name you will remember.
  4. Click back to return to the manage assignments page. Then, click add participants on the assignment you have created. Add student7339 and student7340 to the assignment with the role as participant.
  5. Logout and log in as student7339 (password is "password").
  6. Click on the assignment you created as instructor, and select "Your work". Upload a random link, such as "google.com". Click submit.
  7. Repeat steps 5 through 7, except with student7340 (password is "password").
  8. Logout and login as instructor6. Navigate to Manage -> Assignment and edit the assignment you created previously.
  9. Set the assignment's submission1 date to yesterday and submit. This will allow other students to update the assignment.
  10. Logout and login as student7340.
  11. Now navigate to the assignment, and click "Other's work". Select "Request new review". Click "Begin" on the review.
  12. Fill in dummy values for the review, and click save review.
  13. Logout and login as student7341 (password is "password").
  14. Navigate to the assignment, and click "Other's work". You should be able to see the review response that student7340 was working on. Click on view.
  15. Verify that the information is the same as it entered by student7340.
  16. Click back and then click edit on the review response. Verify that the proper information is prefilled here too. Make a change to one of the response boxes.
  17. Logout and login as student7340. Navigate back to the review response and click "View".
  18. Verify that the changes made by student7341 are present in the response.

Students cannot edit the response at the same time:
Prerequisites: Same as the above test.

  1. Repeat steps 1-11 (inclusive) from the above test.
  2. Open another browser and navigate to Expertiza. Then, login as student7341.
  3. Navigate to the assignment and click "Edit". Verify that you are redirected and unable to edit the review response since student7340 is already editing it.
  4. Try clicking "View". Verify that you are unable to view the review response here either.

Students cannot edit the response at the same time:

Prerequisites: Same as the above test.

  1. Repeat steps 1-11 (inclusive) from the above test.
  2. Open another browser and navigate to Expertiza. Then, login as student7341.
  3. Navigate to the assignment and click "Edit". Verify that you are redirected and unable to edit the review response since student7340 is already editing it.
  4. Try clicking "View". Verify that you are unable to view the review response here either.