CSC/ECE 517 Spring 2020 - E2026. Specialized rubrics for different topic types: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 27: Line 27:
In light of these issues, [https://github.com/gabalmat/expertiza/commit/23ed2cca2976f55515ea8980646e4432858bf446 changes] to expertiza were made as follows:
In light of these issues, [https://github.com/gabalmat/expertiza/commit/23ed2cca2976f55515ea8980646e4432858bf446 changes] to expertiza were made as follows:
*Two additional columns are added into the Assignment table that determines whether Rubrics varies by either Round or Topic with default values False
*Two additional columns are added into the Assignment table that determines whether Rubrics varies by either Round or Topic with default values False
*update_assignment_questionnaires method is re-implemented
*'''update_assignment_questionnaires''' method is re-implemented
**Having extra column in the QA table topic_id, no need for deleting all the data and re-writing it again every single time in the DB (this caused the previous implementation to have a delay when selecting **rubrics)
**Having extra column in the QA table topic_id, no need for deleting all the data and re-writing it again every single time in the DB (this caused the previous implementation to have a delay when selecting **rubrics)
**The only varying value is questionnaire_id, the rest values may not change from Topics or Rubrics tabs, but can be added
**The only varying value is questionnaire_id, the rest values may not change from Topics or Rubrics tabs, but can be added

Revision as of 01:07, 9 April 2020

This wiki page contains description of changes made as part of E2026. Specialized rubrics for different topic types (e.g., Servo project, refactoring project), a Final Project for Spring 2020, CSC/ECE 517


Background

In CSC/ECE 517, there are Expertiza-based course projects, Mozilla-based course projects, etc. However, currently, we can only specify one kind of rubric for all kinds of course projects. This means that refactoring projects, testing projects, and Mozilla projects need to use the same rubric. We hope we could specify different rubrics to be used with different kinds of course projects.

This project was implemented by another team in Spring 2019. We will be implementing our project on top of what was implemented by the previous team, and fix the issues that were found in their implementation. Information on what the previous team had worked on is described in the Previous Implementation section.

Previous Implementation

All aspects of previous implementation were good, and their design was well appreciated. Their changes were also merged to expertiza:beta branch, but were later reverted since the specialized rubrics weren’t saved in the database. This github issue provides a detailed explanation to the problem.

For us to get started, we were provided with following links from previous implementation:

Design Strategy

This feature was previously implemented and was detailed here. The feature concluded with allowing 4 rubric scenarios for an assignment:

  • Rubric does not vary by round or by topic.
  • Rubric varies by round, but not by topic.
  • Rubric varies by topic, but not by round.
  • Rubric varies by both round and topic.

However, there were two issues with the implementation:

  • Rubrics in the dropdown were only those created by the logged-in instructor, so the TA wouldn’t be able to see them
  • Rubrics would not be saved after selecting them and saving.

In light of these issues, changes to expertiza were made as follows:

  • Two additional columns are added into the Assignment table that determines whether Rubrics varies by either Round or Topic with default values False
  • update_assignment_questionnaires method is re-implemented
    • Having extra column in the QA table topic_id, no need for deleting all the data and re-writing it again every single time in the DB (this caused the previous implementation to have a delay when selecting **rubrics)
    • The only varying value is questionnaire_id, the rest values may not change from Topics or Rubrics tabs, but can be added
  • There are 4 (four) possible cases for saving and updating data:
    • used_in_round = null and topic_id = null
    • used_in_round = integer and topic_id = null
    • used_in_round = null and topic_id = integer
    • used_in_round = integer and topic_id = integer

This solved the issue of having rubrics save

Problem

The feature we have to implement was not fully committed due to the previously mentioned problems, so we have to reincorporate the missing code. However, a resulting issue is the inability for an instructor or TA to use rubrics that they did not create. The current problem can be broken down into the following parts:

  1. Integrate the changes made from the original implementation into the current version of Expertiza
  2. Allow an instructor/TA to chose rubrics that aren’t only theirs
  3. Create and update tests to reflect the changes as needed

Proposed Solution

Our proposed solution keeps the previous implementation, but changes rubric filtering to allow instructors/TAs to use filters that are not theirs. Alongside the changes in the original implementation we propose:

  • Allow an instructor to choose different rubrics for different topics
    • PROBLEM: The drop-downs for selecting rubrics show only those rubrics created by the currently-logged in instructor (per project mentor).
      • SOLUTION: Change the filtering in the questionnaire_options method to reflect the desired filtering.
      • FILE: app/helpers/assignment_helper.rb

UML Diagram

Following the previous implementations's footsteps, this diagram depicts the interactions between an instructor and an assignment. The instructor may edit, delete, copy, and other stuff (already existing in Expertiza). Alongside editing topics and due dates, the instructor can edit what rubrics are assigned to an assignment. The highlighted portions are of interest. The topics tab allows instructors to specify which rubric associates with each topic while the rubrics tab lets the instructor determine if the assignment will vary by topic or not.

Files to be modified

Database Flow

Testing Plan

As part of our implementation, we would need to modify existing code as well as add new code. To ensure that existing functionality is not broken, and new functionality works as expected, we will be using the following Test Strategy (which was also used by previous team):

Run and pass existing RSpec Tests

  • All the existing RSpec tests related to the files that have to be modified should pass.

Develop New RSpec Tests

  • As part of previous implementation, the team had introduced following new RSpec test files:
    • spec/helpers/assignment_helper_spec.rb
    • spec/models/self_review_response_map_spec.rb
  • We plan to use those rspec files as well as implement new ones that might be required once we start on our implementation.
  • All these rspec tests should pass for us to complete the testing.

Test the updated/new features on Expertiza UI instance

  • Since the changes in the project would be related to topics, and rubrics for assignment, those features will be tested in Expertiza UI. Current view of Topics and Rubrics tab looks as follows:

Additional check boxes, and dropdown fields will be added in both these tabs once we implement the changes. Those changes in the view as well as their functionality should be tested.

Team Information

  • Dave Bell (dbell5)
  • Steven Green (stgreen)
  • Abhishek Upadhyaya Ghimire (aupadhy3)
  • Mentor: Anuja Kulkarni