CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing

From Expertiza_Wiki
Revision as of 14:59, 20 October 2021 by Krschulz (talk | contribs) (Added first solution to documentation, saving so progress is not lost)
Jump to navigation Jump to search

E2147. Role-based reviewing

This page provides a description of the Expertiza based OSS project.



About Expertiza

Problem Statement

In various agile methodologies, such as Scrum, different team members take on different roles, such as architect, facilitator, and implementer. One might want to use a different rubric for evaluating the contribution of members with different roles. Thus, this would not be separate from teammate review, but it would be a specialization of teammate review.

The following tasks were accomplished in this project:

  • Created a new database table, model, view, and controller for duties.
  • Allow assignments to be marked for role-based reviewing.
  • Certain users can add and edit roles for assignments.

Due to naming issues all of the backend components for role-based reviewing are known as duty or duties. When referring to the backend this documentation will refer to them as duty or duties and when referring to frontend components they will be called role or roles.

About Current Reviewing

Solutions Implemented and Delivered

* Created a new database table, model, view, and controller for duties.

Database

We created a new duty table using scaffolding. In the database, each duty entry has an assignment_id, a max_duty_limit, and a duty_name.

  • The assignment_id is the id of the assignment to which this duty belongs to.
  • The max_duty_limit field is an integer and is the maximum number of students who are allowed to have a specific duty (e.g. 1 scrum master but 5 developers are allowed).
  • The duty_name is the name of the duty and will be displayed as Role name on the frontend.

Model

The model for duty is simple and simply marks a duty as belonging to assignment:

class Duty < ActiveRecord::Base
  belongs_to :assignment
end

Views

There were quite a few new views added for the implementation, they will simply be mentioned in this section and then explained in the corresponding solution description.

The new views were:

  • actions
  • add_duties
  • add_duty
  • checkbox
  • duty
  • table_header
  • table_line
  • edit
  • new


Controller

We created a new duties controller which allows for creation, editing, and deletion of duties from an assignment. The controller has a check to see if the current user is authorized to make the request.

* Allow assignments to be marked for role-based reviewing.

Under the Review Strategy Tab of an assignment a checkbox was added that when clicked marks the assignment as role-based reviewing and displays an interface for adding, editing, and deleting roles.

* Certain users can add and edit roles for assignments.

Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.


Testing

RSPEC

UI

Scope for Future Improvement