CSC/ECE 517 Fall 2018 E1870 Warn of deadlines and enforce them
Introduction
Expertiza supports multi-round peer reviews. Currently, in this situation, student who did not do the previous round peer reviews can still do the subsequent round peer reviews, but will lose about 50 points according to the deduction policy. Therefore, it will be fairer to provide instructor an option to decide whether a student can do the subsequent round peer reviews when s/he did not do the previous round peer reviews.
Design Plan
1. UI Improvement
In assignment#edit page “Review strategy” tab, add a checkbox (e.g., “Allow student to join reviews late”*) to allow instructor to decide whether students can do the second round peer reviews without the first round peer reviews; by default this box is unchecked and it only appears when there are multi-round peer reviews.
- Before
- After
2. Functionality Implementation
Explanation
Currently, when students didn't request enough reviews(e.g. Each student is required to do at least 2 reviews, but s/he only request one in the first round), they can still request more reviews in the second round, but will lose points due to lack of first round reviews. Now, we want to add a functionality to split the case. Below is the flow chart that explains the improvement. * Note that whether submit or not doesn't matter, as long as request, it counts.
Code Level Design
1. First, check whether a certain assignment is multi-rounds Go to expertiza/app/models/assignment.rb, find the following function
def num_review_rounds due_dates = AssignmentDueDate.where(parent_id: self.id) rounds = 0 due_dates.each do |due_date| rounds = due_date.round if due_date.round > rounds end rounds end
check rounds, if >=2, then checkbox will be added.
2. Then, Edit the database Go to DB, add an attribute named 'is_second_round_allowed_checked' to assignment
3. Finally, add the function Go to expertiza/app/models/assignment.rb, add a function called 'allow_second_round_review'. When rounds <2, do nothing; else, allow second_round reviews if box checked.
Test Plan
We plan to write a feature test for the project. Go to expertiza/spec/features folder, add a file named 'Allow_second_round_review'. Below is the details of our test.
1. Test checkbox(Instructor side)
1. Log in as instructor
2. Navigate to “Manage…”,then “Assignments”
3. Under “Actions”, choose “Edit”
4. Navigate to “Review Strategy”
5. See the checkbox “Allow student to join reviews late”
2. Test task list(Student side)
Case 1: Check the checkbox
1. Log in as student
2. Navigate to “Assignments”
3. Choose an assignment
4. Navigate to “Others’ work”
5. Student cannot do the second review without the first one
Case 2: Uncheck the checkbox
1. Log in as student
2. Navigate to “Assignments”
3. Choose an assignment
4. Navigate to “Others’ work”
5. Student can do the second review without the first one