CSC/ECE 517 Fall 2021 - E2145. OSS Project Beige

From Expertiza_Wiki
Revision as of 22:04, 26 October 2021 by Swaghe (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This has contributions from Anmol Lunavat, Shubham Waghe and Vishal Sharma

This wiki page provides description of changes made under E2145 OSS assignment for Fall 2021, CSC/ECE 517.

About Expertiza

Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.

Problem Statement

When a participant updates the submission after the reading the review comments, the reviewer will have to review it again when the second review cycle starts. However, since the reviewer may have multiple submissions to review, some of which are updated, and some that are not, it becomes difficult for the reviewer to identify the updated submissions that need attention. Currently there is no way of identifying the difference between updated and stale submissions.

Proposed Solution

For identifying the submission status of the project in next review cycle, the reviewer should be able to quickly identify the submissions that need attention. This can be done in the UI of the reviewer’s page. The submissions can be color-coded using a scheme like the one used in the “Review Report” page.

  • Red – If the review has not been started
  • Orange – If the review was started, but not completed
  • Brown – Submission has been reviewed

This solution will allows reviewers to identify and prioritize their work without having to dig deep into individual submissions.

The following diagram illustrates how the control would flow. As the user acts on a review, the status of the review changes.

Tasks

The following would be the key tasks:

  • Add a new model to track the status of a review
  • Upon change of review stage, update the data in the database.
  • Change color in the UI based on the status of the review.

Implementation

List of Changes

We came up with the following model to capture the status of a review.

We will keep a track of the stage a review is in. The following would be the three stages of a review:

  • Ready : As soon as a student requests for a new review.
  • Started : Once a student has started the review.
  • Completed : Once a review has been submitted.

This will allow us to designate a unique color for each stage and update accordingly.

As soon as a review is assigned to a user, create a new entry in the Review Status table with the status of "Ready".

Once a student starts doing the review, we fetch the record from Review Status table and update the status to "Started".

Once a review is submitted from student's end we mark the status of the review to be "Completed".

Testing

Since our code changes were mostly linear, we can rely on existing test cases to cover all edge cases. The key check for us was to ensure a new entry to the Review Status Map is created as soon as a review has been requested.

Rspec


This basic test checks that a review gets status as "Ready" when the user requests for a new review.

Capybara Test

This basic test checks that a review is in "Ready" state and has a red color in UI.

Note

Since we did not add new controllers and are relying on existing implementation to help us update the status of the review, we have not added any other tests. A video of testing has been uploaded and one can follow Manual Testing steps to review/verify the changes.



Manual Testing

Please follow the below steps for manual testing:

  • Login using id: instructor6 password: password.
  • Navigate to the Assignments tab under Manage.
  • Create a new Assignment and assign to the following student ids : student2150, student2151, student2152.
  • Navigate to Impersonate User under Manage.
  • Impersonate as one of the users at a time and make a dummy submission.
  • Once that is done and the stage of the assignment has changed to Review, go to Other's work tab and Request a new submission.
  • A new review gets added to page and you should see the color as Red.
  • Now click on Begin. Once satisfied click Save and hit back.
  • Now you should see the highlighted color change to Orange.
  • Once satisfied click View/Edit review and submit it.
  • Now you should see the highlighted color change to Brown.

Manual Testing Video

Please set the deadlines correctly and you should be good. Our code does not control the stages or deadlines and thus you will have to be careful in order to test everything.

References

  1. Expertiza on GitHub
  2. GitHub Project Repository Fork
  3. The live Expertiza website
  4. Expertiza project documentation wiki
  5. Rspec Documentation