CSC/ECE 517 Spring 2022 - E2232: Revision planning tool

From Expertiza_Wiki
Revision as of 22:35, 25 April 2022 by Jlin36 (talk | contribs)
Jump to navigation Jump to search

Project Goal

The primary objective for this project is to create a tool that can be used for the revision of projects at a time after their original submission upon the delivery of constructive feedback from their peers or instructors. The revision planning tool is an important device that will be used to give students the ability to learn from the mistakes of their submissions, and improve the quality of their work prior to the due date. This will be done by completing the existing implementation for revision planning using the following project plan.

Project Plan

Merge code for revision planning into current beta

The functionality of E2152 works well but it was developed based on the previous beta and cannot be merged into the current beta. We will first merge the modification in the following files to the current beta and solve the conflicts.

Files to be merged

  • app/controllers/revision_plan_questionnaires_controller.rb
  • app/models/team.rb
  • app/controllers/grades_controller.rb
  • app/helpers/grades_helper.rb
  • app/models/assignment_participant.rb
  • app/models/response_map.rb
  • app/views/grades/_participant_charts.html.erb
  • app/views/grades/view_team.html.erb
  • app/views/student_task/view.html.erb
  • app/controllers/response_controller.rb
  • app/views/response/response.html.erb
  • config/routes.rb
  • db/schema.rb
  • spec/models/response_spec.rb
  • spec/models/review_response_map_spec.rb
  • spec/features/assignment_creation_general_tab_spec.rb
  • app/models/revision_plan_team_map.rb

Merge code for revision planning with code for role based reviewing and topic specific rubrics

The functionality of E2261 works well and has been merged into the current beta. By merging revision planning tool and topic specific rubrics, in the peer review process, In the first round of review, the rubric is designed by the instructor and varies by topic In the second round of review, the rubric includes two parts: part 1 is designed by the instructor and varies by topic, part 2 is designed by the team based on the comments of the first round of review.

Current Project Implementation

The implementation of this needs to fit within the framework created by E2161 (Fall 2021).

What it does: In the first round of Expertiza reviews, we ask reviewers to give authors some guidance on how to improve their work. Then in the second round, reviewers rate how well authors have followed their suggestions. We could carry the interaction one step further if we asked authors to make up a revision plan based on the first-round reviews. That is, authors would say what they were planning to do to improve their work. Then second-round reviewers would assess how well they did it. In essence, this means that authors would be adding criteria to the second-round rubric that applied only to their submission. We are interested in having this implemented and used in a class so that we can study its effect.

Rationale

The general workflow will be maintained from the previous iterations working on this project. The workflow used by past semesters is as follows.

Image from previous write up
Image from previous write up

Previous implementation

This project was last done in Fall 2021 (E2152). However, related merged code from E2161 (link above) means the implementation this semester may need to be changed from how E2152 did it.

Current Flow

Current flow is dictated by previous iterations. The following content and images are created using those previous write ups.

Prior to the round 2 submission, you can look into your work, but the revision plan.

If there is a round 2 submission, and we did not deal with the "Revision Planning", then the "Your work" part becomes gray.

After editing the "Revision Planning", we can submit our work.

Current User Interface

Current user interface has been put in place by the previous iterations, the following interface image is from those iterations.

Reviews cannot be done during the submission phase

Implementation to be completed

There are actually two E2152 pull requests in Expertiza right now - the PR we saw in the demo has less recent commits than the other. And the PR we did not see has less files changed as well. They started with last year's project, so the beta they started with was the beta from last year. The changes since then will show up as merge conflicts if this project is merged.

The functionality of this project seems to work well and would be a valuable addition to Expertiza, but it cannot be merged in its current state. There are many artifacts in their PR from an old version of beta. This is because the team merged the previous teams' code into current beta, but did not remove the differences unrelated to their project. The team knew of these problems before the demo, but did not fix them.

Because the existing functionality encompasses the intended instructions fairly clearly the work that needs to be done for our purposes would be to pass rspec tests that currently cause the build to fail. This functionality would involve us causing different flows based upon the type of user completing the review. Shown below. HTML changes must also be made in order to pass, specifically needing a change to the display_as_html, done_by_staff_participant and participant_scores methods to return the correct html values. Currently display_as_html is returning an unknown error causing a msitake in the html delivered. The done_by_staff_participant is not present in the code and therefore returns a method not found error. particpant_scores is returning an error that is the result of an incorrect calculation for total_scores. More work will need to be done for each of these bugs to investigate the root cause and establish a solution.

Pull request E2131 is failing rspec tests in ReviewMappingHelper due to a currently unknown OpenSSL error. More work will be needed to determine the specific cause and nature of this error.

More comments can be made in rspec tests as well. It is unclear what the coverage is of the individual tests. The file revision_plan_team_map_test.rb has nothing substantial in it.

Design Changes

Because the changes to the current implementation is limited to specific implementation, the UML design of the project will remain the same as the previous implementation.

Test Plan

Merge existing RSpec tests for revision planning into current beta

We will first merge the existing RSpec tests of E2152 to the current beta, then run and pass these tests. More comments can be made in rspec tests as well. Observe the coverage of the individual tests. Existing RSpec tests to be merged

  • Controllers
    • rspec spec/controllers/grades_controller_spec.rb
    • rspec spec/controllers/questionnaires_controller_spec.rb
    • rspec spec/controllers/questions_controller_spec.rb
    • rspec spec/controllers/student_teams_controller_spec.rb
    • spec/controllers/response_controller_spec.rb
    • spec/controllers/revision_plan_questionnaires_controller_spec.rb
    • spec/factories/revision_plan_factory.rb
  • Models
    • spec/models/response_spec.rb.
    • spec/models/review_response_map_spec.rb
  • Helpers
    • rspec spec/heplers/grades_helper.rb

Develop New RSpec Tests

The RSpec tests are written to test both controllers and models. RSpec testing will be added in order to increase coverage. To do this we will test the flows associated with different user types. Currently the only passing tests are related to student flows and tests may be added that work with instructors. These may include editing the reviews once they are created, and ensuring that an instructor has the ability to make edits.

Manual Testing

  • Instructor
    • Can Review rubric varied by topic be enabled?
    • Can different roles be chosen for each questionnaire?
    • Can an assignment with revision planning enabled be created?
    • Can an assignment with 2 rounds of review be set up?
  • Assignment participant
    • If the revision-planning rubric can be edited or not?
    • Are participants allowed to create/edit revision plan when round 1+ (1 or greater than 1) reviews have finished?
    • Is revision plan editing disabled when the assignment is in review stage?
    • Does participants show a summary of score for revision plan after review deadline has expired?
  • Assignment reviewer
    • Does the rubric page show the topic-specific rubric?
    • Does the rubric page show the revision plan rubric?

Implementation By Team

Halfway through the project deadline, there were new changes that were merged into Expertiza's beta branch. With these new changes in place, our code that was based off the old version of the beta branch started failing tests and causing errors. We fixed these changes that mainly occurred in advice_controller.rb. Some of these failures were also rolled over from the last team's implementation of this same project. Most of these errors occurred in response.rb

Team Information

  • Lawrence O'Brien (lpobrien)
  • Joshua Lin (jlin36)
  • Weiqi Sun (wsun23)
  • Wyatt Plaga (wgplaga)
  • Mentor: Nicholas Himes (nnhimes)