CSC/ECE 517 Spring 2022 - E2235. Issues related to meta-reviewing
Overview of Project
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. Meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified. The task is to fix these issues so that this feature can be used again.
- When a user requests a new meta-review, (s)he is unable to get Begin (refer to above image) link to start a new meta-review. (Issue #198)
- When a user requests a new meta-review, the field which says the number of meta-reviews left ( refer to above image “Numbers of Meta-reviews left:”) does not change and the button to request a new meta-review disappears.
Previous Work
This assignment is a repeat of E2025 which was assigned to students last semester, Spring 2020.
Details of the previous implementation can be found here: [CSC/ECE 517 Spring 2020 - E2025: Issues Related to Meta - Reviewing]
Our goals are to update the logic, refactor non-DRY code, and fix bugs.
Approach taken to solve the issues
- We started by looking at issues happening for meta reviews in beta branch
- Next we tried to understand difference between meta-review and review.
- Further we tried to explore the possibility of combining meta-reviews and review to follow DRY principle in code.
- But we observed that since meta review is advanced stage in review cycle and each meta-review is associated with some previous review and reviewee, there is no way to have single model and controller.
- So we scrapped the idea of changing the design at root level.
- The best approach here to handle current meta-review issues is to fix them individually.
- The details on how each issue will be approached and fixed is given below.
* None of the issues need any change of workflow as per preliminary analysis, thus no UML diagram is added.
#198 - Begin link not working correctly
Issue Description
In beta branch begin is not working correctly. The page crashes sometime: Observations:
- While selecting "Metareview" rubric in local db, the begin link crashed.
- Following the code we observed it was returning questionnaire list, where only object was expected.
- Fixing it, we were able to see page redirecting successfully.
Plan:
- We will be looking into this issue further, if the questionnaire was supposed to be the way it is?
- Further the loaded page doesn't have any portion of view for meta-review, instead it shows just plain old review. We will be checking the history of this change and try to find at what time partial view file was removed from code.
- We will be looking into the response_controller.rb, response_helper.rb, and metareview_response_map.rb files to fix the issue.
Solution:
- The issue was that when a user requests a meta-review, instead of getting questionnaire for meta-review we get the questionnaire for all the available rubrics for the given assignment.
We changed this such that when a meta-review is requested, the response will only have a rubric quetionnaire for meta-review.
- The bug is found and fixed and can be checked here:
https://github.com/amundra02/expertiza/commit/f3f2343ce96a43e81eb7893a415f9077dbf7f32f
Submit button isn't available for meta-reviews
Issue Description
- The issue at present is there is no submit button for meta-reviews.
- Users should see save and submit buttons as part of the meta-review form similar to the behavior as the review form.
Plan:
- We would be looking into the response.html.erb file to fix the issue.
The bug is found and fixed and can be checked here: https://github.com/amundra02/expertiza/commit/d0cd6b2c3816115360e798f8962a2b8f5e64db2a
Hide meta-review deadline under review strategy when use meta review deadline checkbox is unchecked under due date
Issue Description
- The issue at present is that when the meta-review deadline checkbox under due-date has no impact on meta-review deadline under review strategy.
- Users should see the meta-review deadline under review strategy only when meta-review deadline checkbox is checked.
Plan:
- We would be looking into the review_stragtegy.html.erb file to fix the issue.
Changes:
- We have added inline style to the section in meta-review under review strategy to hide/show the section based on a ruby variable.
#32 - Remove all debug comments in the UI
Issue Description
It was noted in the previous team's implementation that multiple debugging comments were showing up during their video testing.
Debug messages shown when viewing a completed meta review:
Changes
There was an error tag in view, which is corrected: https://github.com/amundra02/expertiza/commit/3e535992876291738334e2504bc5ef22bd8610d0
"Numbers of Meta-reviews left:” does not update after a user requests a review.
Issue Description
- Number of meta-reviews left should decrement when a user requests a meta-review. Current behavior only decremented when a review was submitted.
Plan:
- This isn't an issue and is the expected behavior. The same logic is for reviews also. Number of left reviews should only be reduced once any review is submitted.
"Request a new meta-review" button bugs
Issue Description
Currently after the "Request a new meta-review" button is clicked the button disappears and no new meta-review can be requested. The "Request new a meta-review" button should be hidden only when:
- The number of meta-reviews in-progress is greater than the maximum allowed outstanding reviews.
- The number of reviews allowed is limited AND the total number of meta-reviews completed or in-progress is greater than the number allowed.
Plan:
- This issue deals with the view "list.html.erb" under /app/views/student_review. The code below shows the conditional used to display the "Request new meta-review" button.
The code changes are done to fix this issue are availabel here: https://github.com/amundra02/expertiza/commit/d319dbf02100501c657c1257917c325607192a1f
Request for meta review is breaking the website when there are no review
Issue Description
- When there are no review available the request for meta-review deadline is crashing the site.
Plan:
- Fixing it, we were able to show a small error message instead of allowing the site to crash
Code changes: https://github.com/amundra02/expertiza/commit/de9366941a7932af1cd9c0bf0c946f2ac05638c0
Testing Plan
Manual Testing
1. Log in as super_administrator2. Password is "password". Click on mange...-> Assignments.
2. Create a new Assignment by clicking the "+" button. Give the assignment these fields: Name, Course and Submission Directory.
3. Go to "Due Dates" tab and check "Use meta-review deadline" and then set the due dates 1 into the FUTURE for each review round and meta-review. Leave everything else as default as shown below:
4. Go to the "Rubrics" tab and populate as shown below:
5. OPTIONAL: Go to "Review strategy page and select "Has meta-review limit?" and set the number of allowed and required meta-reviews.
6. Once done, "Create" the assignment.
7. Go back to Assignments. manage...-> Assignments.
8. Find the newly created assignment and click on "Add participant". Add the students below:
9. Go to manage...Impersonate User and impersonate "Student485"
10. Go to the newly created assignment and submit a link for the assignment.
11. Revert back to super_administrator2 and change the submission due date to a date in the PAST so we are currently in the review stage.
12. Impersonate student486 and request for a new review under others work, submit the review.
13. Revert back to super_administrator2 as previously described and change the review due date to be passed so we are currently in the meta-review stage.
14. Impersonate as student485 and Request for a new meta review.
15. Press "Begin" and complete the meta-review
16. When the review is complete, the "Begin" should disappear and be replaced with "View" and "Edit"
Automated Test Plan
1. We will target to get all existing test passed, to make sure no existing functionality for other features break.
2. Also, we will be adding few test cases for the issues fixed in this project and hoping to increase coverage.
New test case added:
Objective: To find the behavior of questionnaire function in metareview_response_map.rb when there is no questionnaire in assignment. Expected behavior: It should return nil object, rather than some garbage object.
The test case added increased test coverage by small margin.
Code changes: https://github.com/amundra02/expertiza/commit/bca6534e78f1edb46dc22e907c23af6bcbef952b
Important Links
- Video Link: https://drive.google.com/file/d/1ZLcVpftAaR9XpmlgMlVeWxfVl-PlsqJn/view?usp=sharing
- Pull Request: https://github.com/expertiza/expertiza/pull/2397
- Project Repo: https://github.com/amundra02/expertiza