CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
== Problem Statement ==
== Problem Statement ==
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. Currently, there is no functionality that enables this. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.


== Solution Plan ==
== Solution Plan ==

Revision as of 03:49, 15 November 2017

Problem Statement

In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. Currently, there is no functionality that enables this. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.

Solution Plan

Task Description

1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.
3. If the checkbox is checked, different duties can be added to the assignment through the UI.
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page. In case the assignment does not allow multiple team members to take on the same duty, the student cannot pick a duty that has been picked by another member.
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.

Proposed Database Changes

A new table called 'duties' will be created with the following structure -
duty_name (varchar) - duty name
multiple_duty (boolean) - If multiple team members can have the same duty in one assignment, this field will be true. Otherwise, it should be false.

The existing table 'assignments' will be modified to include the following fields -
duty_flag (boolean) - If the assignment is role-based, this field will be true. Otherwise, it should be false.

The existing table 'teams_users' will be modified to include the following fields -
duty_id (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.

Proposed File Changes

Controllers -

assignments_controller.rb - This is the controller that handles the actions performed by view in _review_stategy.html.erb.

New function 'save_duty' to be created - This will save the duties assigned to an assignment.

Existing function 'edit' to be modified - This function will save whether the assignment is role-based.

student_teams_controller.rb - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.

New functions 'assign_duty' and 'select_duty' will be defined so that a team member can select a duty and save it.

Views -

assignments/edit/_review_stategy.html.erb - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.

assignments/edit/_rubrics.html.erb - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.

student_teams/view.html.erb - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.

UI Description

The new changes will be as follows in the UI -


The team would add the duties as -



The Instructor would mark the assignment where team members will have duties or not -


The Rubrics will added based on the role and a new text field will be added to do that -

Use Case Diagram

Class Diagram

  • The table 'duties' will contain the name of the duty and whether multiple team members can choose the same duty.
  • Assignments will either be role-based or not, depending on the value of the duty flag.
  • The 'save_duty' and 'edit' functions in the AssignmentsController will allow saving the duties assigned to an assignment and saving whether the assignment is role-based.
  • The 'assign_duty' and 'select_duty' functions in StudentTeamsController be defined so that a team member can select a duty and save it.