<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Krschulz</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Krschulz"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Krschulz"/>
	<updated>2026-05-06T20:18:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142344</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142344"/>
		<updated>2021-11-30T04:48:16Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
===Files we originally planned to modify===&lt;br /&gt;
#app/controllers/student_review_controller.rb&amp;lt;br/&amp;gt;The mappings of reviews or calibration reviews should be redesigned.&lt;br /&gt;
#views/student_review/list.html.erb&amp;lt;br/&amp;gt;The view of the list should be modified so that the calibration review can be displayed correctly.&lt;br /&gt;
#views/assignments/edit/_due_dates.html.erb&amp;lt;br/&amp;gt;&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
#app/controllers/assignments_controller.rb&amp;lt;br/&amp;gt;The assignments_controller might need a fix so that the assignments with calibration review can be deleted properly.&lt;br /&gt;
#app/views/student_review/_responses.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files we modified===&lt;br /&gt;
#app/models/assignment_form.rb&lt;br /&gt;
##Removed vary_by_topic_desired from the update function.&lt;br /&gt;
##Removed topic references from update_assignment_questionnaires.&lt;br /&gt;
##Updated Questionnaire to AssignmentQuestionnaire.&lt;br /&gt;
##Added self.copy_calibration function.&lt;br /&gt;
##Updated the copy counter.&lt;br /&gt;
#app/models/assignment_team.rb&lt;br /&gt;
##Removed code for E1973.&lt;br /&gt;
##Updated review response map return.&lt;br /&gt;
##Created directory_path function.&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
##Added calibration to the model.&lt;br /&gt;
#app/models/participant.rb&lt;br /&gt;
##Added self.createparticipant function.&lt;br /&gt;
#app/models/review_response_map.rb&lt;br /&gt;
##Removed E1973 code.&lt;br /&gt;
##Removed topic from questionnaire function.&lt;br /&gt;
##Shortened self.import function.&lt;br /&gt;
##Added self.newreviewresp function.&lt;br /&gt;
#app/models/submission_record.rb&lt;br /&gt;
##Added self.copycalibratedsubmissions function.&lt;br /&gt;
#app/models/team.rb&lt;br /&gt;
##Added self.createnewteam function.&lt;br /&gt;
#app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
##Added checkmark for calibration.&lt;br /&gt;
#spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
#spec/models/assignment_form_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
#db/migrate/20211129124620_add_calibration_to_deadline_type.rb&lt;br /&gt;
##We added a new migration for AddCalibrationToDeadlineType.&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
#Unit test files added:&lt;br /&gt;
##spec/models/assignment_form_spec.rb&lt;br /&gt;
###Added tests for function 'copy'. Test to make sure that the assignment id is updated on copy and no longer references the original assignment. We also make sure that the name of the new file is correct.&lt;br /&gt;
##spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
###Added unit test to make sure that the calibration shows in the due dates tab.&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempts his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage shows what the student has submitted as well as a long that says &amp;quot;Show Calibration Results&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Errors Found==&lt;br /&gt;
&lt;br /&gt;
We found, and fixed, a bug in app/controllers/response_controller.rb where the code was using get_reviewer instead of reviewer. We needed to fix this bug in order for our code to work.&lt;br /&gt;
&lt;br /&gt;
==Future Improvements==&lt;br /&gt;
&lt;br /&gt;
We believe that submitter_count can be removed from the database since it is never used in the project and in order to update the student directory number we do set_student_directory_num on any of team object within an assignment.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142327</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142327"/>
		<updated>2021-11-30T04:34:50Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Files we modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
===Files we originally planned to modify===&lt;br /&gt;
#app/controllers/student_review_controller.rb&amp;lt;br/&amp;gt;The mappings of reviews or calibration reviews should be redesigned.&lt;br /&gt;
#views/student_review/list.html.erb&amp;lt;br/&amp;gt;The view of the list should be modified so that the calibration review can be displayed correctly.&lt;br /&gt;
#views/assignments/edit/_due_dates.html.erb&amp;lt;br/&amp;gt;&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
#app/controllers/assignments_controller.rb&amp;lt;br/&amp;gt;The assignments_controller might need a fix so that the assignments with calibration review can be deleted properly.&lt;br /&gt;
#app/views/student_review/_responses.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files we modified===&lt;br /&gt;
#app/models/assignment_form.rb&lt;br /&gt;
##Removed vary_by_topic_desired from the update function.&lt;br /&gt;
##Removed topic references from update_assignment_questionnaires.&lt;br /&gt;
##Updated Questionnaire to AssignmentQuestionnaire.&lt;br /&gt;
##Added self.copy_calibration function.&lt;br /&gt;
##Updated the copy counter.&lt;br /&gt;
#app/models/assignment_team.rb&lt;br /&gt;
##Removed code for E1973.&lt;br /&gt;
##Updated review response map return.&lt;br /&gt;
##Created directory_path function.&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
##Added calibration to the model.&lt;br /&gt;
#app/models/participant.rb&lt;br /&gt;
##Added self.createparticipant function.&lt;br /&gt;
#app/models/review_response_map.rb&lt;br /&gt;
##Removed E1973 code.&lt;br /&gt;
##Removed topic from questionnaire function.&lt;br /&gt;
##Shortened self.import function.&lt;br /&gt;
##Added self.newreviewresp function.&lt;br /&gt;
#app/models/submission_record.rb&lt;br /&gt;
##Added self.copycalibratedsubmissions function.&lt;br /&gt;
#app/models/team.rb&lt;br /&gt;
##Added self.createnewteam function.&lt;br /&gt;
#app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
##Added checkmark for calibration.&lt;br /&gt;
#spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
#spec/models/assignment_form_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
#db/migrate/20211129124620_add_calibration_to_deadline_type.rb&lt;br /&gt;
##We added a new migration for AddCalibrationToDeadlineType.&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
#Unit test files added:&lt;br /&gt;
##spec/models/assignment_form_spec.rb&lt;br /&gt;
###Added tests for function 'copy'. Test to make sure that the assignment id is updated on copy and no longer references the original assignment. We also make sure that the name of the new file is correct.&lt;br /&gt;
##spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
###Added unit test to make sure that the calibration shows in the due dates tab.&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempts his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage shows what the student has submitted as well as a long that says &amp;quot;Show Calibration Results&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Future Improvements==&lt;br /&gt;
&lt;br /&gt;
We believe that submitter_count can be removed from the database since it is never used in the project and in order to update the student directory number we do set_student_directory_num on any of team object within an assignment.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142306</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142306"/>
		<updated>2021-11-30T04:05:15Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
===Files we originally planned to modify===&lt;br /&gt;
#app/controllers/student_review_controller.rb&amp;lt;br/&amp;gt;The mappings of reviews or calibration reviews should be redesigned.&lt;br /&gt;
#views/student_review/list.html.erb&amp;lt;br/&amp;gt;The view of the list should be modified so that the calibration review can be displayed correctly.&lt;br /&gt;
#views/assignments/edit/_due_dates.html.erb&amp;lt;br/&amp;gt;&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
#app/controllers/assignments_controller.rb&amp;lt;br/&amp;gt;The assignments_controller might need a fix so that the assignments with calibration review can be deleted properly.&lt;br /&gt;
#app/views/student_review/_responses.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files we modified===&lt;br /&gt;
#app/models/assignment_form.rb&lt;br /&gt;
##Removed vary_by_topic_desired from the update function.&lt;br /&gt;
##Removed topic references from update_assignment_questionnaires.&lt;br /&gt;
##Updated Questionnaire to AssignmentQuestionnaire.&lt;br /&gt;
##Added self.copy_calibration function.&lt;br /&gt;
##Updated the copy counter.&lt;br /&gt;
#app/models/assignment_team.rb&lt;br /&gt;
##Removed code for E1973.&lt;br /&gt;
##Updated review response map return.&lt;br /&gt;
##Created directory_path function.&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
##Added calibration to the model.&lt;br /&gt;
#app/models/participant.rb&lt;br /&gt;
##Added self.createparticipant function.&lt;br /&gt;
#app/models/review_response_map.rb&lt;br /&gt;
##Removed E1973 code.&lt;br /&gt;
##Removed topic from questionnaire function.&lt;br /&gt;
##Shortened self.import function.&lt;br /&gt;
##Added self.newreviewresp function.&lt;br /&gt;
#app/models/submission_record.rb&lt;br /&gt;
##Added self.copycalibratedsubmissions function.&lt;br /&gt;
#app/models/team.rb&lt;br /&gt;
##Added self.createnewteam function.&lt;br /&gt;
#app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
##Added checkmark for calibration.&lt;br /&gt;
#spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
#spec/models/assignment_form_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
#Unit test files added:&lt;br /&gt;
##spec/models/assignment_form_spec.rb&lt;br /&gt;
###Added tests for function 'copy'. Test to make sure that the assignment id is updated on copy and no longer references the original assignment. We also make sure that the name of the new file is correct.&lt;br /&gt;
##spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
###Added unit test to make sure that the calibration shows in the due dates tab.&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempts his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage shows what the student has submitted as well as a long that says &amp;quot;Show Calibration Results&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Future Improvements==&lt;br /&gt;
&lt;br /&gt;
We believe that submitter_count can be removed from the database since it is never used in the project and in order to update the student directory number we do set_student_directory_num on any of team object within an assignment.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142298</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142298"/>
		<updated>2021-11-30T03:58:44Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Files we plan to modify */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
===Files we originally planned to modify===&lt;br /&gt;
#app/controllers/student_review_controller.rb&amp;lt;br/&amp;gt;The mappings of reviews or calibration reviews should be redesigned.&lt;br /&gt;
#views/student_review/list.html.erb&amp;lt;br/&amp;gt;The view of the list should be modified so that the calibration review can be displayed correctly.&lt;br /&gt;
#views/assignments/edit/_due_dates.html.erb&amp;lt;br/&amp;gt;&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
#app/controllers/assignments_controller.rb&amp;lt;br/&amp;gt;The assignments_controller might need a fix so that the assignments with calibration review can be deleted properly.&lt;br /&gt;
#app/views/student_review/_responses.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files we modified===&lt;br /&gt;
#app/models/assignment_form.rb&lt;br /&gt;
##Removed vary_by_topic_desired from the update function.&lt;br /&gt;
##Removed topic references from update_assignment_questionnaires.&lt;br /&gt;
##Updated Questionnaire to AssignmentQuestionnaire.&lt;br /&gt;
##Added self.copy_calibration function.&lt;br /&gt;
##Updated the copy counter.&lt;br /&gt;
#app/models/assignment_team.rb&lt;br /&gt;
##Removed code for E1973.&lt;br /&gt;
##Updated review response map return.&lt;br /&gt;
##Created directory_path function.&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
##Added calibration to the model.&lt;br /&gt;
#app/models/participant.rb&lt;br /&gt;
##Added self.createparticipant function.&lt;br /&gt;
#app/models/review_response_map.rb&lt;br /&gt;
##Removed E1973 code.&lt;br /&gt;
##Removed topic from questionnaire function.&lt;br /&gt;
##Shortened self.import function.&lt;br /&gt;
##Added self.newreviewresp function.&lt;br /&gt;
#app/models/submission_record.rb&lt;br /&gt;
##Added self.copycalibratedsubmissions function.&lt;br /&gt;
#app/models/team.rb&lt;br /&gt;
##Added self.createnewteam function.&lt;br /&gt;
#app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
##Added checkmark for calibration.&lt;br /&gt;
#spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
#spec/models/assignment_form_spec.rb&lt;br /&gt;
##See tests section.&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
#Unit test files added:&lt;br /&gt;
##spec/models/assignment_form_spec.rb&lt;br /&gt;
###Added tests for function 'copy'. Test to make sure that the assignment id is updated on copy and no longer references the original assignment. We also make sure that the name of the new file is correct.&lt;br /&gt;
##spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
###Added unit test to make sure that the calibration shows in the due dates tab.&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempts his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage shows what the student has submitted as well as a long that says &amp;quot;Show Calibration Results&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142276</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=142276"/>
		<updated>2021-11-30T03:39:26Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
===Files we plan to modify===&lt;br /&gt;
#app/controllers/student_review_controller.rb&amp;lt;br/&amp;gt;The mappings of reviews or calibration reviews should be redesigned.&lt;br /&gt;
#views/student_review/list.html.erb&amp;lt;br/&amp;gt;The view of the list should be modified so that the calibration review can be displayed correctly.&lt;br /&gt;
#views/assignments/edit/_due_dates.html.erb&amp;lt;br/&amp;gt;&lt;br /&gt;
#app/models/deadline_right.rb&lt;br /&gt;
#app/controllers/assignments_controller.rb&amp;lt;br/&amp;gt;The assignments_controller might need a fix so that the assignments with calibration review can be deleted properly.&lt;br /&gt;
#app/views/student_review/_responses.html.erb&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
&lt;br /&gt;
#Unit test files added:&lt;br /&gt;
##spec/models/assignment_form_spec.rb&lt;br /&gt;
###Added tests for function 'copy'. Test to make sure that the assignment id is updated on copy and no longer references the original assignment. We also make sure that the name of the new file is correct.&lt;br /&gt;
##spec/features/assignment_creation_general_tab_spec.rb&lt;br /&gt;
###Added unit test to make sure that the calibration shows in the due dates tab.&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempts his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage shows what the student has submitted as well as a long that says &amp;quot;Show Calibration Results&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141301</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141301"/>
		<updated>2021-11-08T22:22:26Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
#TODO: test if the assignment and its participants were copied correctly, test if the participants can be added to the calibration review, test if the due date of calibration review was saved successfully&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempts his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage shows what the student has submitted as well as a long that says &amp;quot;Show Calibration Results&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141300</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141300"/>
		<updated>2021-11-08T22:21:26Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
#TODO: test if the assignment and its participants were copied correctly, test if the participants can be added to the calibration review, test if the due date of calibration review was saved successfully&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempt his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage redirects to the instructor's calibration review&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141299</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141299"/>
		<updated>2021-11-08T22:20:16Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
#TODO: test if the assignment and its participants were copied correctly, test if the participants can be added to the calibration review, test if the due date of calibration review was saved successfully&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The due date of calibration review appears before the first round of the review&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempt his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage redirects to the instructor's calibration review&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141298</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141298"/>
		<updated>2021-11-08T22:18:40Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Issues of Previous work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues with the Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
#TODO: test if the assignment and its participants were copied correctly, test if the participants can be added to the calibration review, test if the due date of calibration review was saved successfully&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of participants of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The due date of calibration review appears before the first round of the review&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempt his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage redirects to the instructor's calibration review&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141297</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141297"/>
		<updated>2021-11-08T22:17:29Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Issues of Previous work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues of Previous work===&lt;br /&gt;
#The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.&lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
#TODO: test if the assignment and its participants were copied correctly, test if the participants can be added to the calibration review, test if the due date of calibration review was saved successfully&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of participants of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The due date of calibration review appears before the first round of the review&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempt his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage redirects to the instructor's calibration review&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141296</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141296"/>
		<updated>2021-11-08T22:16:08Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* 1. Check &amp;quot;Calibration for training?&amp;quot; in an assignment then copy the participants from the course. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in the general tab of an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues of Previous work===&lt;br /&gt;
#The project assumes that the calibration starts at directory 0, which occasionally causes Expertiza to copy the wrong submission. &lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
#TODO: test if the assignment and its participants were copied correctly, test if the participants can be added to the calibration review, test if the due date of calibration review was saved successfully&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of participants of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The due date of calibration review appears before the first round of the review&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempt his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage redirects to the instructor's calibration review&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141295</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=141295"/>
		<updated>2021-11-08T22:15:10Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, &amp;quot;calibration assignments&amp;quot; were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.&lt;br /&gt;
&lt;br /&gt;
To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in two ways:&lt;br /&gt;
&lt;br /&gt;
====1. Check &amp;quot;Calibration for training?&amp;quot; in an assignment then copy the participants from the course.====&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
====2. Copy existing assignment and its participants with calibration review enabled.====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed System Overview can be found at the following: &amp;lt;br&amp;gt; &lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
However, their implementation introduced several assumptions about the system that we will address to allow merging into production.&lt;br /&gt;
&lt;br /&gt;
===Issues of Previous work===&lt;br /&gt;
#The project assumes that the calibration starts at directory 0, which occasionally causes Expertiza to copy the wrong submission. &lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
#The due date of calibration review are missing. [[File:2021-11-03 235457.png]]&lt;br /&gt;
#The copied assignments do not have participants copied. [[File:2021-11-04 013403.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
#TODO: add UML diagram, preliminary class design&lt;br /&gt;
[[File:2021-11-04 230435.png]]&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
==Testing Plan==&lt;br /&gt;
#TODO: test if the assignment and its participants were copied correctly, test if the participants can be added to the calibration review, test if the due date of calibration review was saved successfully&lt;br /&gt;
&lt;br /&gt;
Testing scenarios:&lt;br /&gt;
&lt;br /&gt;
#The instructor copies the existing assignment&amp;lt;br /&amp;gt;The copied assignment stored in the correct directory&amp;lt;br /&amp;gt;Expect the number of participants of the copied assignment=the number of participants of the original assignment&lt;br /&gt;
#The instructor enables the calibration review of an assignment&amp;lt;br /&amp;gt;The due date of calibration review appears before the first round of the review&amp;lt;br /&amp;gt;The calibration tab appears next to the due dates tab&lt;br /&gt;
#The student attempt his/her calibration review&amp;lt;br /&amp;gt;The student submits the calibration review&amp;lt;br /&amp;gt;The webpage redirects to the instructor's calibration review&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/Kasimir123/expertiza/tree/beta Github repository]&lt;br /&gt;
 &lt;br /&gt;
==Team==&lt;br /&gt;
#John Marsden (ProfDoof)&lt;br /&gt;
#Lee Shyu (ls-hyu)&lt;br /&gt;
#Angela Ho (angelaho0504)&lt;br /&gt;
#Kasimir Schulz (Kasimir123)&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=140625</id>
		<title>CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2155._Calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=140625"/>
		<updated>2021-11-03T16:41:33Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Issues of Previous work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
===Introduction===&lt;br /&gt;
#TODO: Rephrase the sentences&lt;br /&gt;
Expertiza is an open-source learning management system developed using Ruby on Rails framework. Expertiza supports multiple features such as course management, assignment submission, peer review, grade calculation, etc.&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza] is an open-source education and classroom web-tool founded by the [http://www.nsf.gov/ National Science Foundation]. Built with Ruby on Rails, it is designed to manage complete courses and students’ work within those courses. Each course can have a collection of instructors and students, though the interaction between instructors and students is minimal. The real emphasis of Expertiza is placed on peer-to-peer interactions, fostering a student-driven learning environment. Courses are comprised of assignments which users complete individually or with a team. Assignments usually encourage or require a team to enforce practicing peer-to-peer interaction.&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
To improve the experience of peer reviewing and to find out the competent reviewers among all the reviewers, designing a new form of review for assignments seems to be a fix. As a result, &amp;quot;calibration assignment&amp;quot; was introduced to the Expertiza system. The calibration assignment should be assigned before the peer review so that the students can know if they reviewed using the same rubrics as the instructor.&lt;br /&gt;
To set up the calibration assignment that allows both the instructor and the students of the course to review, the instructor needs to create a new assignment and add the extra participant manually, impersonate the participant then submit the review, which is not a great experience.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
To fix the issue of setting up the calibration assignment repeatedly every semester, the system should be able to make a copy of the previous calibration assignment and let the instructor submit a review as the extra participant by selecting calibration training when the instructor creates the assignment.&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
In the previous implementation, the calibration review was designed as part of the assignment and students should be able to participate in calibration review training before reviewing other students' work.&lt;br /&gt;
&lt;br /&gt;
The instructor can enable the calibration review in each assignment by checking the box before &amp;quot;Calibration for training?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:2021-11-03 011751.png]]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A4_Allow_calibration_to_be_part_of_an_assignment CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]&lt;br /&gt;
&lt;br /&gt;
===Issues of Previous work===&lt;br /&gt;
#The project assumes that the calibration starts at directory 0 which causes the wrong submission to be copied occasionally. &lt;br /&gt;
##Suggested Fix: set submitter_count to the largest directory number that was used for calibration.&lt;br /&gt;
###Allows us to keep track of the most recent calibration submission.&lt;br /&gt;
###Gives us something we can reference during copying to get the correct directory.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139552</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139552"/>
		<updated>2021-10-20T22:06:48Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Peer Review Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
====Peer Review Information====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Login credentials for peer review.&lt;br /&gt;
&lt;br /&gt;
* Instructor login:&lt;br /&gt;
** Username: instructor6&lt;br /&gt;
** Password: password&lt;br /&gt;
&lt;br /&gt;
* Student login:&lt;br /&gt;
** Username: student4340&lt;br /&gt;
** Password: password&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Currently reviewing does not allow students to have different rubrics for an assignment based on their role in the team.&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
An authorized user can select the edit role icon or the name of a duty on the Review Strategy tab and will be redirected to a form (duty view) that is auto populated by the edit view for the duty they are attempting to edit:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty.png]]&lt;br /&gt;
&lt;br /&gt;
After successfully updating the duty the user is redirected back to the assignment edit page and get a notification of the change:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
An authorized user can also delete an existing duty, after deletion they will get another notification:&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-deletion-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Since duties_controller was a brand new file we created a new spec files &amp;quot;duties_controller_spec.rb&amp;quot; which covers creation, editing, and deletion of duties in the system. To run this file use the following command while in the top level of the expertiza directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/duties_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139551</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139551"/>
		<updated>2021-10-20T22:06:38Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Added login information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
====Peer Review Information====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Login credentials for peer review.&lt;br /&gt;
&lt;br /&gt;
* Instructor login:&lt;br /&gt;
** Username: instructor6&lt;br /&gt;
** Password: password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Student login:&lt;br /&gt;
** Username: student4340&lt;br /&gt;
** Password: password&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Currently reviewing does not allow students to have different rubrics for an assignment based on their role in the team.&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
An authorized user can select the edit role icon or the name of a duty on the Review Strategy tab and will be redirected to a form (duty view) that is auto populated by the edit view for the duty they are attempting to edit:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty.png]]&lt;br /&gt;
&lt;br /&gt;
After successfully updating the duty the user is redirected back to the assignment edit page and get a notification of the change:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
An authorized user can also delete an existing duty, after deletion they will get another notification:&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-deletion-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Since duties_controller was a brand new file we created a new spec files &amp;quot;duties_controller_spec.rb&amp;quot; which covers creation, editing, and deletion of duties in the system. To run this file use the following command while in the top level of the expertiza directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/duties_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139550</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139550"/>
		<updated>2021-10-20T22:01:59Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* RSPEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Currently reviewing does not allow students to have different rubrics for an assignment based on their role in the team.&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
An authorized user can select the edit role icon or the name of a duty on the Review Strategy tab and will be redirected to a form (duty view) that is auto populated by the edit view for the duty they are attempting to edit:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty.png]]&lt;br /&gt;
&lt;br /&gt;
After successfully updating the duty the user is redirected back to the assignment edit page and get a notification of the change:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
An authorized user can also delete an existing duty, after deletion they will get another notification:&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-deletion-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Since duties_controller was a brand new file we created a new spec files &amp;quot;duties_controller_spec.rb&amp;quot; which covers creation, editing, and deletion of duties in the system. To run this file use the following command while in the top level of the expertiza directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/duties_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139496</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139496"/>
		<updated>2021-10-20T20:08:02Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* Solutions Implemented and Delivered */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Currently reviewing does not allow students to have different rubrics for an assignment based on their role in the team.&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
An authorized user can select the edit role icon or the name of a duty on the Review Strategy tab and will be redirected to a form (duty view) that is auto populated by the edit view for the duty they are attempting to edit:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty.png]]&lt;br /&gt;
&lt;br /&gt;
After successfully updating the duty the user is redirected back to the assignment edit page and get a notification of the change:&lt;br /&gt;
&lt;br /&gt;
[[File:Edit-duty-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
An authorized user can also delete an existing duty, after deletion they will get another notification:&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-deletion-confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty-deletion-confirmation.png&amp;diff=139495</id>
		<title>File:Duty-deletion-confirmation.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty-deletion-confirmation.png&amp;diff=139495"/>
		<updated>2021-10-20T20:07:19Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Confirmation that the duty has been deleted.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Confirmation that the duty has been deleted.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-duty-confirmation.png&amp;diff=139494</id>
		<title>File:Edit-duty-confirmation.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-duty-confirmation.png&amp;diff=139494"/>
		<updated>2021-10-20T20:05:23Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Confirmation that the duty has been successfully updated.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Confirmation that the duty has been successfully updated.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-duty.png&amp;diff=139492</id>
		<title>File:Edit-duty.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Edit-duty.png&amp;diff=139492"/>
		<updated>2021-10-20T20:02:29Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Screen showing editing of a role/duty.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screen showing editing of a role/duty.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139484</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139484"/>
		<updated>2021-10-20T19:43:57Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* E2147. Role-based reviewing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Currently reviewing does not allow students to have different rubrics for an assignment based on their role in the team.&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139483</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139483"/>
		<updated>2021-10-20T19:43:40Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* About Expertiza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Currently reviewing does not allow students to have different rubrics for an assignment based on their role in the team.&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139481</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139481"/>
		<updated>2021-10-20T19:39:02Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* About Current Reviewing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Currently reviewing does not allow students to have different rubrics for an assignment based on their role in the team.&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139469</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139469"/>
		<updated>2021-10-20T19:17:53Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Added UI testing information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''The following steps need to be performed to test this code from the UI:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Save and exit the assignment.&lt;br /&gt;
&lt;br /&gt;
6. Login as a student and attempt to apply to the duty.&lt;br /&gt;
&lt;br /&gt;
'''To test editing of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the edit icon or the duty name listed under Role name.&lt;br /&gt;
&lt;br /&gt;
7. Edit the duty, press Update and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
'''To test deleting of a duty:'''&lt;br /&gt;
&lt;br /&gt;
1. Login as an instructor. Create a course and an assignment or navigate to an existing course with assignments.&lt;br /&gt;
&lt;br /&gt;
2. Mark the assignment as a team assignment and navigate to the Review Strategy tab.&lt;br /&gt;
&lt;br /&gt;
3. Check the Is Role-Based Reviewing checkbox and save the assignment.&lt;br /&gt;
&lt;br /&gt;
4. Click New Role and fill out the information for creating a new duty. &lt;br /&gt;
&lt;br /&gt;
5. Click create and navigate to the Review Strategy tab again.&lt;br /&gt;
&lt;br /&gt;
6. Click either the delete icon.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139455</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139455"/>
		<updated>2021-10-20T19:00:31Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Added some changes to make the page look better&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Below we have listed the solutions that we implemented, why we did certain design decisions, and explanations on how they were implemented.''&lt;br /&gt;
&lt;br /&gt;
'''Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139453</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139453"/>
		<updated>2021-10-20T18:56:52Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Added possible future improvements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
'''* Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''* Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''* Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. If a duty's maximum member limit is changed to be below the current number of students who are assigned to that duty nothing happens. We feel that a good future improvement would be to notify the students of the change and require them to select which students are dropped from the duty.&lt;br /&gt;
&lt;br /&gt;
2. We believe that the checkbox for role-based reviewing can be moved to the general tab and only be displayed when the assignment is team based. This is due to dole-based reviewing being only available when an assignment is team based.&lt;br /&gt;
&lt;br /&gt;
3. We believe that a possible future improvement would be to allow a user to import duties and their corresponding rubrics into other assignments.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139443</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139443"/>
		<updated>2021-10-20T18:47:55Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Added photos to the role based reviewing section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
'''* Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''* Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Unchecked-Role-Based-Reviewing.png]]&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Checked-Role-Based-Reviewing-no-roles.png]]&lt;br /&gt;
&lt;br /&gt;
If there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
[[File:Display-duties.png]]&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When clicked the user is directed to the new duty view:&lt;br /&gt;
&lt;br /&gt;
[[File:New-Duty.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting back or create link back to the original assignment and upon successful creation there is a notification stating &amp;quot;Role was successfully created.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Duty-creation-success.png]]&lt;br /&gt;
&lt;br /&gt;
'''* Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Display-duties.png&amp;diff=139440</id>
		<title>File:Display-duties.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Display-duties.png&amp;diff=139440"/>
		<updated>2021-10-20T18:46:42Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Display of duties on the assignment.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Display of duties on the assignment.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty-creation-success.png&amp;diff=139437</id>
		<title>File:Duty-creation-success.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty-creation-success.png&amp;diff=139437"/>
		<updated>2021-10-20T18:45:22Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Duty was successfully created.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Duty was successfully created.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New-Duty.png&amp;diff=139436</id>
		<title>File:New-Duty.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New-Duty.png&amp;diff=139436"/>
		<updated>2021-10-20T18:42:40Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: New duty view.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New duty view.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Checked-Role-Based-Reviewing-no-roles.png&amp;diff=139435</id>
		<title>File:Checked-Role-Based-Reviewing-no-roles.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Checked-Role-Based-Reviewing-no-roles.png&amp;diff=139435"/>
		<updated>2021-10-20T18:40:00Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Role-based checkbox has been checked and there are no roles assigned to the assignment.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Role-based checkbox has been checked and there are no roles assigned to the assignment.&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Unchecked-Role-Based-Reviewing.png&amp;diff=139430</id>
		<title>File:Unchecked-Role-Based-Reviewing.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Unchecked-Role-Based-Reviewing.png&amp;diff=139430"/>
		<updated>2021-10-20T18:37:08Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Role-based reviewing checkbox while unchecked on the review strategy tab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Role-based reviewing checkbox while unchecked on the review strategy tab&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139392</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139392"/>
		<updated>2021-10-20T15:19:45Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Second solution added, will add photos later&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
'''* Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''* Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy Tab under the self review checkbox we added a render call to the checkbox view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if current_page?(action: 'edit') %&amp;gt;&lt;br /&gt;
    &amp;lt;!--E2147 Duty Based Reviewing--&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td id='is_duty_based_assignment'&amp;gt;&lt;br /&gt;
        &amp;lt;input name=&amp;quot;assignment_form[assignment][is_duty_based_assignment]&amp;quot; type=&amp;quot;hidden&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;%= check_box_tag('assignment_form[assignment][is_duty_based_assignment]', 'true', @assignment_form.assignment.is_duty_based_assignment, {:id =&amp;gt; &amp;quot;is_duty_checkbox&amp;quot;, :onChange =&amp;gt; 'hasDutiesChanged()'}) %&amp;gt;&lt;br /&gt;
        &amp;lt;%= label_tag('duty_assignment', 'Is Role-Based Reviewing?') %&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;/assets/info.png&amp;quot; title='Check the box if this assignment allows role assignments within the team'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;div id=&amp;quot;add_duties&amp;quot; &amp;lt;%= &amp;quot;hidden&amp;quot; if not @assignment_form.assignment.is_duty_based_assignment %&amp;gt; &amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;%= render '/duties/add_duties' %&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The checkbox view checks if the current page is being edited rather than created since duties rely on an assignment existing to link via id. This functionality is similar to how topics are added to the assignment. &lt;br /&gt;
&lt;br /&gt;
If the checkbox is checked and saved the assignment will be marked as a role-based reviewing assignment via the database column is_duty_based_assignment in the assignment table. When the checkbox is checked the add_duties view is rendered and displayed as well. When unchecked the view is hidden and the is_duty_based_assignment is marked as false when saved.&lt;br /&gt;
&lt;br /&gt;
If the assignment has no duties in the backend the add_duties view will display a note with the text &amp;quot;Roles have not yet been created.&amp;quot;, if there are duties linked to the currently edited assignment then the view will render a table header from the table_header view and a line for each duty from the table_line view. At the end of this view, the add_duty partial view is rendered.&lt;br /&gt;
&lt;br /&gt;
The table_header view displays a table header with three items. Role name, Maximum member limit, and Actions, each with respective widths of 45%, 45%, and 10%.&lt;br /&gt;
&lt;br /&gt;
The table_line view crafts a table row based on the duty that was passed to it. The first column is the duty's duty_name with a link to the editing page for the duty if clicked. The next column is the duty's max_duty_limit, and the final column is a list of actions for the current duty which is rendered using the actions view.&lt;br /&gt;
&lt;br /&gt;
The actions view displays two linked images, these are named &amp;quot;Edit Role&amp;quot; and &amp;quot;Delete Role&amp;quot;, and are linked to their respective actions. The icons used for these actions are in line with other parts of expertiza for the actions that they represent.&lt;br /&gt;
&lt;br /&gt;
The add_duty view is a link to the new view and is labelled &amp;quot;New role&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''* Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139391</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139391"/>
		<updated>2021-10-20T14:59:19Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Added first solution to documentation, saving so progress is not lost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Created a new database table, model, view, and controller for duties.&lt;br /&gt;
* Allow assignments to be marked for role-based reviewing.&lt;br /&gt;
* Certain users can add and edit roles for assignments.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
'''* Created a new database table, model, view, and controller for duties.'''&lt;br /&gt;
&lt;br /&gt;
''Database''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
* The assignment_id is the id of the assignment to which this duty belongs to. &lt;br /&gt;
* 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).&lt;br /&gt;
* The duty_name is the name of the duty and will be displayed as Role name on the frontend.&lt;br /&gt;
&lt;br /&gt;
''Model''&lt;br /&gt;
&lt;br /&gt;
The model for duty is simple and simply marks a duty as belonging to assignment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Duty &amp;lt; ActiveRecord::Base&lt;br /&gt;
  belongs_to :assignment&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Views''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The new views were:&lt;br /&gt;
&lt;br /&gt;
* actions&lt;br /&gt;
* add_duties&lt;br /&gt;
* add_duty&lt;br /&gt;
* checkbox&lt;br /&gt;
* duty&lt;br /&gt;
* table_header&lt;br /&gt;
* table_line&lt;br /&gt;
* edit&lt;br /&gt;
* new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Controller''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''* Allow assignments to be marked for role-based reviewing.'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''* Certain users can add and edit roles for assignments.'''&lt;br /&gt;
&lt;br /&gt;
Users with TA privileges are able to add a role (added as duty to backend for clarity) to an assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139378</id>
		<title>CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021_-_E2147._Role-based_reviewing&amp;diff=139378"/>
		<updated>2021-10-20T14:14:28Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: Added documentation skeleton&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E2147. Role-based reviewing==&lt;br /&gt;
&lt;br /&gt;
This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Expertiza===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Current Reviewing===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Solutions Implemented and Delivered===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
====RSPEC====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UI====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021&amp;diff=139368</id>
		<title>CSC/ECE 517 Fall 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2021&amp;diff=139368"/>
		<updated>2021-10-20T14:05:22Z</updated>

		<summary type="html">&lt;p&gt;Krschulz: /* OSS Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSS Projects ==&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - {$num}. {$desc.title}]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2128. Refactor student_quizzes_controller.rb &amp;amp; late_policies_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2132. Add tests cases for review mapping helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2134. Write unit tests for admin_controller.rb and institution_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2138. Auto-generate submission directory names based on assignment]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2142. Improve e-mail notifications]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2133. Write tests for popup_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2120. Refactor reputation_web_service_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2139. Remove multiple topics at a time]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2131. Improve assessment360_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2121. Refactor suggestion_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2126. Refactor account_request_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2124. Refactor review_mapping_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2125. Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2127. Refactor teams_controller]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2021 - E2147. Role-based reviewing]]&lt;/div&gt;</summary>
		<author><name>Krschulz</name></author>
	</entry>
</feed>