CSC/ECE 517 Fall 2016 E1683 Team-based reviewing: Difference between revisions
(→Design) |
(→Design) |
||
(22 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
Based on the design documents, the basic project design is proposed below. | Based on the design documents, the basic project design is proposed below. | ||
=== | === Database Design === | ||
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 ''Team'', which indicates which team is being reviewed. And the ''reviewer_id'' is the ID of ''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 ''Team'', which indicates which team is being reviewed. And the ''reviewer_id'' is the ID of ''Participant'', which specifies a user who is participating in this assignment. | ||
[[File:data_design_1.png]] | |||
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. | 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. | ||
[[File:data_design_2.png]] | |||
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. | 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. | ||
[[File:data_design_3.png]] | |||
=== Interface Design === | === Interface Design === | ||
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”. The scores are given as team if the reviewing type is team-based. | ||
expertiza/app/controllers/grades_controller: | |||
def view_my_score | |||
+ Give all team members the same score | |||
end | |||
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. | |||
expertiza/app/views/assignments/edit_html_erb: | |||
+ Add a select tag to let instructor choose the reviewing type | |||
expertiza/app/controllers/assignments_controller: | |||
def edit | |||
+ Accept the value from view and assign it to assignment | |||
end | |||
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. The error message is considered to be displayed by | 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. The error message is considered to be displayed by ''flash[:alert]''. | ||
expertiza/app/controllers/responses_controller: | |||
def edit | |||
+ Set a lock allowing only one student editing review at the same time | |||
end | |||
=== Test Design === | === Test Design === | ||
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. And also the basic test case is proposed for UI test. | ||
{| class="wikitable" | |||
!Test Name !!Prerequisites !!Test Procedure !!Expected Results | |||
|- | |||
|Edit reviewing type of assignments | |||
|1. User is an Instructor 2. At leaset one assignments can be edited | |||
|1. Log into Expertiza 2. Edit assignments 3. Change reviewing type under Review Strategy | |||
|The reviewing type is changed (in database) | |||
|- | |||
|Edit reviews at the same time | |||
|1. Two users at the same team as Students 2. At least one assignments can be reviewed | |||
|1. Two users log into Expertiza. 2. One start editing review and the other try submitting at the same time | |||
|An alert message will be displayed | |||
|- | |||
|View scores | |||
|1. Two users at the same team as Students 2. At least one assignments is graded | |||
|1. Two users log into Expertiza. 2. Click "your score" under one assignment page | |||
|The page works well and the score is the same | |||
|} | |||
Latest revision as of 22:59, 1 December 2016
Purpose
In Expertiza, students can review others’ work. However, currently all reviews 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. And apparently, team-based reviewing can reduce the workload of each student.
In a word, the main purpose of this project is to achieve the function of team-based reviewing and ensure that Expertiza works well with the change.
Design
Based on the design documents, the basic project design is proposed below.
Database Design
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 Team, which indicates which team is being reviewed. And the reviewer_id is the ID of 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.
Interface Design
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”. The scores are given as team if the reviewing type is team-based.
expertiza/app/controllers/grades_controller: def view_my_score + Give all team members the same score end
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.
expertiza/app/views/assignments/edit_html_erb: + Add a select tag to let instructor choose the reviewing type
expertiza/app/controllers/assignments_controller: def edit + Accept the value from view and assign it to assignment end
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. The error message is considered to be displayed by flash[:alert].
expertiza/app/controllers/responses_controller: def edit + Set a lock allowing only one student editing review at the same time end
Test Design
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. And also the basic test case is proposed for UI test.
Test Name | Prerequisites | Test Procedure | Expected Results |
---|---|---|---|
Edit reviewing type of assignments | 1. User is an Instructor 2. At leaset one assignments can be edited | 1. Log into Expertiza 2. Edit assignments 3. Change reviewing type under Review Strategy | The reviewing type is changed (in database) |
Edit reviews at the same time | 1. Two users at the same team as Students 2. At least one assignments can be reviewed | 1. Two users log into Expertiza. 2. One start editing review and the other try submitting at the same time | An alert message will be displayed |
View scores | 1. Two users at the same team as Students 2. At least one assignments is graded | 1. Two users log into Expertiza. 2. Click "your score" under one assignment page | The page works well and the score is the same |