CSC/ECE 517 Fall 2017/E17A0 Team-based reviewing

From Expertiza_Wiki
Revision as of 01:47, 6 November 2017 by Adeshmu (talk | contribs)
Jump to navigation Jump to search

Introduction

Motivation

Traditionally, only single individuals have been able to perform assignment reviews in Expertiza. Over the years, it has been observed that it would be more desirable if assignment setters could define how a specific assignment could be reviewed. One of the ways will be by an individual, and a new way of reviews will be by teams. The same teams formed for the assignment would be able to participate in reviewing peer assignments.

The benefits of peers reviews are numerous, and there is an additional benefit of reviews by teams. In general, we may be getting to a point where traditional individual reviews are becoming ineffective, often missing nuances in an assignments details and concepts. It is a general belief that team-based reviews will address this, often pooling together resources from multiple reviewers working as a team to form a one cohesive and often comprehensive review.

Changes to be Implemented

1. A new button to select Reviewers as a team will be provided at the Assignments Edit page in the Review Strategy tab for the instructors.
2. Student participants of the assignment should be able to ask for a review for their team.
3. Participants of the team should not be allowed to edit a review simultaneously.
4. A new field reviewer_is_team? should be added in the Response Map to determine whether the reviewer is an AssignmentParticipant or an AssignmentTeam.
5. Finally, functionality should be provided to allow Team reviews by connecting everything as mentioned above.


Test Plan

Testing of the new controller methods to check whether all the functionality of reviewing as a participant is also working for the scenario when reviewing is done by a team.

Design Principles to be Followed

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.
3. Polymorphism - 4. Inheritance -