E1936 Specialized Rubrics: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 50: Line 50:
===Our Plan===
===Our Plan===


*  
* app/views/assignments/edit/_rubrics.html.erb
*  
** Add a new checkbox for whether or not rubrics vary by topic
*  
 
* app/views/assignments/edit.html.erb
** Break out code dealing with topics into app/views/assignments/edit/_topics.html.erb
 
* app/views/assignments/edit/_topics.html.erb
** Add a new column in the topics table for choosing rubric(s)
** New column only visible if rubrics vary by topic, per Rubrics tab
** New column has multiple rounds per topic only if rubrics vary by round, per Rubrics tab
** Default value for any rubric is that rubric which is shown on Rubrics tab
** Use the code in app/views/assignments/edit/_rubrics.html.erb for inspiration
** Break as much actual work as possible out into helper methods that are simply called from this view
** Views are not intended to do heavy lifting


===How to Add a New Rubric===
===How to Add a New Rubric===

Revision as of 17:06, 2 April 2019

E1936. Specialized Rubrics for Different Topic Types

This page provides a description of an Expertiza OSS project.

Problem Statement

In CSC/ECE 517, there are several types of topics that could be covered in a single class assignment.

  • Code base
    • Expertiza
    • Mozilla
    • etc.
  • Goal
    • Refactoring
    • Testing
    • etc.

However, currently we can only specify one kind of rubric for an assignment. This means that teams working on different topics will be evaluated using the same rubric. With this setup, it's not possible to fine-tune rubrics for different topics - rubrics tend to be overly general.

What Needs to be Done

  • In assignment#edit page "Rubrics" tab, add a checkbox to specify whether rubric should vary by topic.
  • In assignment#edit page "Topics" tab, add a dropdown next to each topic to specify which rubric is associated with the topic.
    • This dropdown should appear only if rubric should vary by topic, per the Rubrics tab.
    • By default, the rubric for each course project will be the one specified in “Rubrics” tab.
    • The dropdown value can overwrite the default rubric.
  • Be careful when making changes to the code
    • The signup_sheet_controller should have as little to do as possible with the selection of rubrics.
    • Anything not germane to selecting topics should be in another controller or (more probably) a helper.
  • Create a DB migration to allow rubric to vary by topic as well as by round.

Current Implementation (Relevant to this Project)

  • Relevant Models
    • The Questionnaire model keeps questionnaires for assignments (a.k.a. rubrics) as well as other types of questionnaires
    • The AssignmentQuestionnaire model keeps track of which questionnaires are used for which assignments
      • questionnaire_id links to a questionnaire
      • assignment_id links to an assignment
      • used_in_round links to a particular round of an assignment
    • The SignUpTopic model keeps topics and associates each with an assignment
      • this model does not have any concept of "rounds" of an assignment
  • Relevant Files
    • app/views/assignments/edit/_rubrics.html.erb
      • The view for choosing an assignment's rubrics
      • Uses a mix of JavaScript and ERB code
    • app/views/assignments/edit.html.erb
      • The view for editing an assignment (including the view for choosing topics)

Our Plan

  • app/views/assignments/edit/_rubrics.html.erb
    • Add a new checkbox for whether or not rubrics vary by topic
  • app/views/assignments/edit.html.erb
    • Break out code dealing with topics into app/views/assignments/edit/_topics.html.erb
  • app/views/assignments/edit/_topics.html.erb
    • Add a new column in the topics table for choosing rubric(s)
    • New column only visible if rubrics vary by topic, per Rubrics tab
    • New column has multiple rounds per topic only if rubrics vary by round, per Rubrics tab
    • Default value for any rubric is that rubric which is shown on Rubrics tab
    • Use the code in app/views/assignments/edit/_rubrics.html.erb for inspiration
    • Break as much actual work as possible out into helper methods that are simply called from this view
    • Views are not intended to do heavy lifting

How to Add a New Rubric

  • [to be populated after coding is complete]

How to Select a Rubric for a Topic

  • [to be populated after coding is complete]

Automated Testing with RSPEC

Our strategy for gaining confidence that our code changes did not break anything was as follows:

  • Run all existing RSpec tests on any changed files, after our changes, to ensure that we have not introduced any failures.
  • The commands and results are shown below.
  [to be populated after coding is complete]
  • Write new comprehensive RSpec tests, for all new methods.
  • Run these tests, to ensure that the new code works as intended.
  • The commands and results are shown below.
  [to be populated after coding is complete]
  • The test suite for a single new method is below.
  • There are many such suites in (TODO add filename(s)).
  • This example illustrates our general strategy:
    • test missing input
    • test bad input
    • test various acceptable forms of input
    • test scenarios that lead to "true" and to "false" return values
  [to be populated after coding is complete]

Team Members

  • Aurora Tiffany-Davis
  • Ginger Balmat
  • Joe Hutchinson
  • Nikolay Titov

Links (Our Work)

  1. Project Repository Fork
  2. [(add link here) Pull Request]
  3. [(add link here) Video Demonstration of Specialized Rubrics]

Links (Previous Attempt by another Team)

  1. Pull Request
  2. Wiki Page
  3. Video Demonstration of Specialized Rubrics

Links (General References)

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