CSC/ECE 517 Fall 2016 E1683 Team-based reviewing: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
== Project Purpose ==
== Project Purpose ==
At present, all reviews in Expertiza are done by individuals, regardless of whether the assignment is assigned as individuals or teams. In team assignments, when the team member reviews an assignment, his/her review is independent from his/her teammates’ reviews. To encourage students to discuss together and review carefully, it is sometimes reasonable for students to submit their reviews as a team.
At present, all reviews in Expertiza are done by individuals, regardless of whether the assignment is assigned as individuals or teams. In team assignments, when the team member reviews an assignment, his/her review is independent from his/her teammates’ reviews. To encourage students to discuss together and review carefully, it is sometimes reasonable for students to submit their reviews as a team. The main purpose of our project is to achieve the function of team-based reviewing and ensure the other functions in Expertiza works well with the change.


== Project Design ==
== Project Design ==
Based on the design documents, the basic project design is proposed below.  
Based on the design documents, the basic project design is proposed below.  
=== Model ===
=== Model ===
In Expertiza, we have ResponseMap, which is the object that records who reviews whom. In ResponseMap, there are two attributes: reviewer_id and reviewee_id. The reviewee_id is the ID of the AssignmentTeam that is being reviewed.  The reviewer_id is a Participant, which specifies a User who is participating in this assignment.
In Expertiza, we have ''ResponseMap'', which is the object that records who reviews whom. In ''ResponseMap'', there are two attributes: ''reviewer_id'' and ''reviewee_id''. The ''reviewee_id'' is the ID of the ''AssignmentTeam'' , which indicates which team is being reviewed.  The ''reviewer_id'' is a ''Participant'', which specifies a User who is participating in this assignment.


To achieve function of team-based review, a boolean field reviewer_is_team needs to be added to ResponseMap to determines whether the reviewer is a AssignmentParticipant or an AssignmentTeam. If reviewer_is_team is true, then the reviewer_id would refer to a record in the teams table, not a record in the participants table.  
To achieve function of team-based reviewing, a boolean field ''reviewer_is_team'' needs to be added to ''ResponseMap'' to determines whether the reviewer is a ''AssignmentParticipant'' or an ''AssignmentTeam''. If ''reviewer_is_team'' is true, then the ''reviewer_id'' would refer to a record in the teams table, not a record in the participants table.  


And a field reviewer_is_team is also need to be added to the assignments table as well to indicate the assignment is an individual-based review or team-based review.
And a field ''reviewer_is_team'' is also need to be added to the assignments table as well to indicate the review of assignment is an individual-based reviewing or team-based reviewing.


===Controller===
===Controller===
The method sending a message to the reviewer should be implemented appropriately in both Participant and AssignmentTeam.
The method sending a message to the reviewer should be implemented appropriately in both ''Participant'' and ''AssignmentTeam''.
=== View ===
=== View ===
Several parts of the system need to work regardless of whether the reviewer is an individual or a team, like “View my scores” and “Alternative view”.   
Several parts of the system need to work regardless of whether the reviewer is an individual or a team, like “View my scores” and “Alternative view”.   


For an Instructor to specify whether the view is team-based or individual-based, we are intended to provide a dropdown on the Review Strategy tab of assignment creation.  
For an ''Instructor'' to specify whether the reviewing is team-based or individual-based, we are intended to provide a dropdown on the ''Review Strategy'' tab of assignment creation.  


Set a lock, so that a second team member cannot start to edit a review at the same time that another team member is editing it.
We set a lock in editing review, so that other team member cannot start to edit a review at the same time that one team member is editing it.


== Test Plan ==
== Test Plan ==
=== RSpec ===
=== RSpec ===
RSpec is a testing framework for Rails, and is a Behavioral-Driven Development tool. It is a domain specific language(DSL). All the tests can be executed by rspec spec command, or can also be executed individually using the command "rspec spec/models/assignment_team_spec.rb. We intend to write unit tests using RSpec for all the methods which we modified/created. We intend to write unit tests using RSpec for all the methods which we modified/created.
RSpec is a testing framework for Rails, and is a Behavioral-Driven Development tool. It is a domain specific language(DSL). All the tests can be executed by rspec spec command, or can also be executed individually using the command "rspec spec/models/assignment_team_spec.rb. We intend to write unit tests using RSpec for all the methods which we modified/created. We intend to write unit tests using RSpec for all the methods which we modified/created.

Revision as of 23:28, 11 November 2016

Project Purpose

At present, all reviews in Expertiza are done by individuals, regardless of whether the assignment is assigned as individuals or teams. In team assignments, when the team member reviews an assignment, his/her review is independent from his/her teammates’ reviews. To encourage students to discuss together and review carefully, it is sometimes reasonable for students to submit their reviews as a team. The main purpose of our project is to achieve the function of team-based reviewing and ensure the other functions in Expertiza works well with the change.

Project Design

Based on the design documents, the basic project design is proposed below.

Model

In Expertiza, we have ResponseMap, which is the object that records who reviews whom. In ResponseMap, there are two attributes: reviewer_id and reviewee_id. The reviewee_id is the ID of the AssignmentTeam , which indicates which team is being reviewed. The reviewer_id is a Participant, which specifies a User who is participating in this assignment.

To achieve function of team-based reviewing, a boolean field reviewer_is_team needs to be added to ResponseMap to determines whether the reviewer is a AssignmentParticipant or an AssignmentTeam. If reviewer_is_team is true, then the reviewer_id would refer to a record in the teams table, not a record in the participants table.

And a field reviewer_is_team is also need to be added to the assignments table as well to indicate the review of assignment is an individual-based reviewing or team-based reviewing.

Controller

The method sending a message to the reviewer should be implemented appropriately in both Participant and AssignmentTeam.

View

Several parts of the system need to work regardless of whether the reviewer is an individual or a team, like “View my scores” and “Alternative view”.

For an Instructor to specify whether the reviewing is team-based or individual-based, we are intended to provide a dropdown on the Review Strategy tab of assignment creation.

We set a lock in editing review, so that other team member cannot start to edit a review at the same time that one team member is editing it.

Test Plan

RSpec

RSpec is a testing framework for Rails, and is a Behavioral-Driven Development tool. It is a domain specific language(DSL). All the tests can be executed by rspec spec command, or can also be executed individually using the command "rspec spec/models/assignment_team_spec.rb. We intend to write unit tests using RSpec for all the methods which we modified/created. We intend to write unit tests using RSpec for all the methods which we modified/created.