CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment Team34: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 13: Line 13:


== 2. Overall Description ==
== 2. Overall Description ==
“Calibration for training?” feature of an assignment in Expertiza provides a solution for the Instructor of a course to effectively add a calibration to a newly created or existing assignment. The instructor should be able to turn on this feature by checking the check box "Calibration for training?" under the General tab of an assignment. The instructor will also be able to provide or change the corresponding deadline for calibration. Then students will be pre-assigned several sample assignments. After students finish one peer review , there will be a link named “Show calibration results” to show the calibration report.


== 3. Requirements ==
== 3. Requirements ==

Revision as of 18:41, 13 November 2017

1. Introduction

1.1 Purpose

Expertiza is an open source website based on Ruby on Rails. Calibration is one of the main feature Expertiza provides, which allow students to compare their reviews with experts' reviews. Currently, the instructor is able to calibrate the students’ peer review abilities on Expertiza. But s/he needs to create a separate assignment just for calibration purpose. Ideally, calibration should become one part of the normal assignment so that students can do the calibration reviews first, learn from experts' reviews and then do the peer reviews.

1.2 Problem Definition

Currently, the instructor is able to calibrate the students’ peer review abilities on Expertiza. However, the instructor needs to create a separate assignment just for calibration purpose of a project . Then the instructor and students can start doing peer reviews for the project with the newly created assignment . However, calibration should become one part of the normal assignment. The instructor could turn on this feature if necessary. Adding a separate assignment every time a project needs a calibration process is not efficient.

This project proposes a solution to include the process of calibration in a regular assignment.

2. Overall Description

“Calibration for training?” feature of an assignment in Expertiza provides a solution for the Instructor of a course to effectively add a calibration to a newly created or existing assignment. The instructor should be able to turn on this feature by checking the check box "Calibration for training?" under the General tab of an assignment. The instructor will also be able to provide or change the corresponding deadline for calibration. Then students will be pre-assigned several sample assignments. After students finish one peer review , there will be a link named “Show calibration results” to show the calibration report.

3. Requirements

4. Use Cases

5. Test-Driven Development(TDD)

A software development process begins by writing an (initially failing) automated test case that defines a desired improvement or a new function, and generate the minimum amount of code to pass that test. It helps the developer to focus on a smaller portions of functionality at a time. Also the refactoring process is safe since it happens after the test is written. Tests can also serve as a documentation to a developer.

6. Task Specifications and Plan

1. Add a new record in deadline_types table which is calibration due date.

2. When instructor checks “Calibration for training?” and save the assignment. In “Due dates” tab, a row should appear to deal with calibration due date. The other content of this row is just the same as other due dates.

3. In student_task/list page, current stage column should display calibration when assignment is in calibration period.

4. In student_review/list page, you may notice that there are several restrictions to choose other students’ work.

  • Eg. “Note: You can't have more than 2 outstanding reviews. You must complete one of your outstanding reviews before selecting another. ” or “Note: You can't do more than 4 reviews according to assignment policy.”
  • Change the logic in this view and exclude calibration reviews when counting the review number.
  • Change the wording and numbering on this view. Calibrated review 1,2,3 to represent review done in calibration period; Review 1, 2, 3 to represent reviews done in normal review period.

5. Write feature tests to verify the modifications

7. Test Plan

1. When it is in assignments#edit page:

  • To check it has a checkbox with title "Calibration for training?" in assignments#edit page

2. When it is in assignments#edit page and clicking "Calibration for training?" checkbox and clicking "save" button:

  • To check it displays a new tab named "Calibration" and adds a calibration due date in "Due dates" tab
  • To check it allows instructors to change and save date & time and permissions of calibration due date

3.When current assignment is calibration stage:

  • To check it shows current stage of the assignment to be "Calibration" on student_task#view page when current assignment is in calibration stage
  • To check it shows "Calibration review 1,2,3..." instead of "Review 1,2,3..." on student_review#list page
  • To check it allows students to do calibration review and the date can be saved successfully
  • To check the student is able to compare the results of expert review by clicking "show calibration results" link

4. When current assignment if in review_stage:

  • To check it excludes calibration reviews from outstanding review restriction and total review restriction
  • To check it shows "Review 1,2,3..." instead of "Calibration review 1,2,3..." on student_review#list page

8. Design Patterns

1. MVC – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively).

2. Dry Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.

Related Files