CSC/ECE 517 Spring 2018- Project E1818: Role-based reviewing

From Expertiza_Wiki
Jump to navigation Jump to search

Introduction

Overview

The project is a role-based reviewing project. These roles can be better named as duties, corresponding to the duty of a team member in a particular project/assignment. Borrowing from different Agile methodologies like SCRUM, each team member has a particular role. For example, one team member may work mainly on the documentation, another on writing tests and another member may write most of the code. Although there is no clear distinction in the duties as each team member still contributes to other duties, a much more meaningful review can be done if the review questionnaire was role specific rather than being assignment specific. Currently, there is a single teammate review rubric for each assignment. This means that some review rubrics are not applicable for all the projects and also for all team members. For instance, if there is a question which says “What percentage of the code was written by this member?” This may not be applicable for the team member who wrote tests and it is definitely not applicable for the member who wrote the documentation. The project aims at creating different review rubrics for different duties, which an instructor can create for an assignment. Students can select a particular duty they want to perform in that project.

UML Diagram


In a UML Class diagram, The relationships depicted above are as follows:

  • Between the User and Duty class, there is a bidirectional association. The user table is used for both the instructor and the student.
    • Each instructor can have multiple roles that he can choose from for a particular assignment/questionnaire.
    • Each student can have 0 or 1 role for a particular project.
  • For each Questionnaire instance, there are one or more Questions that can be stored, hence there is an aggregation relationship from Question to Questionnaire. This is for the grading rubric based on the role.
  • The Question table and the Questionnaire table each will be using the the duty ID to sort out questions for a particular assignment.

Proposed Implementation

The project introduces changes from the instructor view and the student view. The steps for implementation are as follow:

Migration changes

  • . Create a migration for adding the duties table having the following fields:
              * id
              * assignment_id
              * instructor_id
              * course_id
  • The duty ID will be used by other tables like the questionnaire table and hence will be the primary key.
  • An assignment has particular duties. Thus, the assignment number will be the foreign key for the Duties table.
  • The Duties created by one Instructor should be visible and reusable by that instructor only. Thus, the instructor id will also be a foreign key in the Duties table.
  • Add a column entry named "is role based review enabled" in the assignments table which would be of type boolean. This field would save the status of the role based review checkbox.
  • Add a column entry named "Can multiple students select the same role ?" in the assignments table which would be of type boolean. This field would save the status of the checkbox for multiple students with the same role.
  • Add a column entry named "Duties" to the Users table which would be of type string. This field would save the duty that a student would select if role based reviews are permitted.

Instructor view changes

  • For a particular assignment, create a check box called "Is role based review allowed.? "that allows an instructor to add a role based review for a particular assignment or not. This can be done by adding a checkbox tag in the review strategy subpage of the edit assignments page.
  • If the instructor selects the checkbox for role-based reviewing, then a button should appear for adding roles called “Add Duties” along with a dropdown to select from the previously added duties by the same instructor.
  • . The duties appearing in the dropdown would consist of duties added by the instructor for any of his courses.
  • This can be achieved by including a subform tag in the same table entry as the checkbox which should have a hidden attribute.
  • . A javascript function would be created which is invoked when the status of the checkbox changes. This function should remove the hidden attribute of the subform tag if the checkbox is checked. This would enable the add duties field and the select duties dropdown to appear only on checking the box.
  • An instructor can decide the number of duties for a particular assignment, the number of team members who can undertake a particular duty and if any of the duties are optional.
  • To implement this , another checkbox called "Can multiple students select the same role ? "is added in the review strategy subpage of the edit assignments page. This will be visible only if the role based reviewing checkbox is selected.
  • The instructor can create Team-mate review Questionnaires for the different duties he created or can use any from the existing list of questionnaires.
  • . The instructor would have to create questionnaires for the newly created duties in the standard way by going to manage questionnaires and creating a new public or private item.
  • If the role based review checkbox is selected, the instructor would get a dropbox box to select the duty and another dropdown box to select the team-mate review questionnaire applicable for this duty. In this way , the instructor can select different questionnaires for different duties. If role based reviewing is not permitted on an assignment, the existing view with a single dropdown box for selecting the team-mate review would be displayed.
  • This can be implemented by making changes in the rubrics subpage of the edit assignments page. A conditional statement would be included in the view which would show the modified view if role based review is permitted or else it would show the existing view.

Student view changes

  • When a student goes to “Your team”, he should be able to select a duty from a drop down menu which would display all the duties added by an instructor for that particular assignment. This should only occur if role based reviewing is permitted for that particular assignment. If not, the standard existing view will be displayed which does not give any such option.
  • . This can be implemented by adding a dropdown box in the student_teams view file. This would be enclosed in a conditional which would only appear if role based reviewing is permitted.
  • A student can only select one duty.
  • If the instructor has permitted multiple students to have the same role, each student will get all the duties as an option in the dropdown box.However, if the instructor has not provided permission for multiple students to have the same role, when a particular duty is selected by a student , any other student will not see that duty in the drop down box.
  • . This can be implemented by making a separate copy of the list of all the duties available. If multiple roles are not permitted, once a duty is selected , it can be eliminated from the separate list maintained and that list can be displayed to the student. Thus , there will be a conditional in the student teams view file that displays the separate list in the dropdown if multiple students can have the same role or else display the original list of duties.
  • A team member cannot change their role after the assignment submission deadline.
  • . This can be implemented by taking the time and date information from the server and showing the select duties option only if the current time and date is prior to the deadline time and date. A conditional statement will be included in the student teams view file for this purpose.
  • When a student selects a particular duty , it is stored in the database table of that user. Thus when a team-mate reviews that student , he will see a questionnaire corresponding to the duty of that student.This would enable reviews of the teammates to be accurate and specific to their role in a project.

Files to be modified

New files

  • Duties Table
    • Duty ID
    • Name of duty
    • Instructor user id

Files that have to be modified

  • app/views/assignment/edit
  • app/views/student_teams/view
  • app/tree_display/views/list
  • app/questionnaire/new
  • app/questionnaire/edit

Test Plan

  • Instructor tests
    • Check the box for role based reviewing.
      • Display and select from already existing roles(duties) with option to create new roles(duties).
      • Should not be able to see roles(duties) from other instructors.
      • Select corresponding rubrics for a particular role(duty).
    • If not, proceed with the default questions for the rubric for the assignment./
  • Student(team member) tests
    • Before submitting the project, the team members should be able to add a role(duty) for themselves from the roles(duties) set by the instructor.
    • Multiple students may have the role(duty) but 1 student cannot have multiple roles(duties).
  • Reviewer tests
    • For the teammate review, students with different roles(duties) should have different questions because of the different rubrics.