<?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=Anjain2</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=Anjain2"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Anjain2"/>
	<updated>2026-06-08T12:58:01Z</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_2017/E17A1_Expert_Review.rb&amp;diff=114494</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=114494"/>
		<updated>2017-12-06T06:48:26Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Original interface&lt;br /&gt;
[[File:Rsz 1old calibration page.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_old_show.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_GeneralTab.png]]&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page [[File:Rsz_NewGeneral.png‎]]&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”[[File:Rsz_new_show.png|1000px|Updated]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”[[File:New_expert_review_page.png|1000px|Updated]]&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
= Use Case Diagram =&lt;br /&gt;
[[File:Rsz_expertiza_uml-1.png]]&lt;br /&gt;
&lt;br /&gt;
*Instructor and TAs are the &amp;quot;Experts&amp;quot; that can review the assignment.&lt;br /&gt;
*Multiple experts should be able to review the same assignment.&lt;br /&gt;
*When a student views the review, student should understand whether the review was made by an expert or a student.&lt;br /&gt;
&lt;br /&gt;
=Major changes performed=&lt;br /&gt;
*app/controllers/response_controller.rb:&lt;br /&gt;
**Method: show_calibration_results_for_student&lt;br /&gt;
**Fetching all expert reviews performed for the respective assignment and respective team instead of fetching only instructor's response.&lt;br /&gt;
*app/assignments/edit/_expert_review.html.erb&lt;br /&gt;
**Showing multiple rounds of View/Begin review as per the current round and number of reviews already done by the expert (as it happens for students).&lt;br /&gt;
*app/views/response/show_expert_review_results_for_student.erb&lt;br /&gt;
**Showing calibrated response to students who have reviewed the assignment with responses of multiple experts for a particular round.&lt;br /&gt;
*app/views/student_review/_responses.html.erb&lt;br /&gt;
**Showing links for calibrated result for each round.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;br /&gt;
&lt;br /&gt;
=== New Test ===&lt;br /&gt;
New tests will be written to test the new features added, like :&lt;br /&gt;
* assignment should support multiple expert review.&lt;br /&gt;
* current assignment should support vary-rubric-by-round.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
1. Pull request - https://github.com/expertiza/expertiza/pull/1114&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=114493</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=114493"/>
		<updated>2017-12-06T06:47:46Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Original interface&lt;br /&gt;
[[File:Rsz 1old calibration page.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_old_show.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_GeneralTab.png]]&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page [[File:Rsz_NewGeneral.png‎]]&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”[[File:Rsz_new_show.png|1000px|Updated]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”[[File:New_expert_review_page.png|1000px|Updated]]&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
= Use Case Diagram =&lt;br /&gt;
[[File:Rsz_expertiza_uml-1.png]]&lt;br /&gt;
&lt;br /&gt;
*Instructor and TAs are the &amp;quot;Experts&amp;quot; that can review the assignment.&lt;br /&gt;
*Multiple experts should be able to review the same assignment.&lt;br /&gt;
*When a student views the review, student should understand whether the review was made by an expert or a student.&lt;br /&gt;
&lt;br /&gt;
=Major changes performed=&lt;br /&gt;
*app/controllers/response_controller.rb:&lt;br /&gt;
Method: show_calibration_results_for_student&lt;br /&gt;
Fetching all expert reviews performed for the respective assignment and respective team instead of fetching only instructor's response.&lt;br /&gt;
*app/assignments/edit/_expert_review.html.erb&lt;br /&gt;
Showing multiple rounds of View/Begin review as per the current round and number of reviews already done by the expert (as it happens for students).&lt;br /&gt;
*app/views/response/show_expert_review_results_for_student.erb&lt;br /&gt;
Showing calibrated response to students who have reviewed the assignment with responses of multiple experts for a particular round.&lt;br /&gt;
*app/views/student_review/_responses.html.erb&lt;br /&gt;
Showing links for calibrated result for each round.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;br /&gt;
&lt;br /&gt;
=== New Test ===&lt;br /&gt;
New tests will be written to test the new features added, like :&lt;br /&gt;
* assignment should support multiple expert review.&lt;br /&gt;
* current assignment should support vary-rubric-by-round.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
1. Pull request - https://github.com/expertiza/expertiza/pull/1114&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=114492</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=114492"/>
		<updated>2017-12-06T06:25:25Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Original interface&lt;br /&gt;
[[File:Rsz 1old calibration page.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_old_show.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_GeneralTab.png]]&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page [[File:Rsz_NewGeneral.png‎]]&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”[[File:Rsz_new_show.png|1000px|Updated]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”[[File:New_expert_review_page.png|1000px|Updated]]&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
= Use Case Diagram =&lt;br /&gt;
[[File:Rsz_expertiza_uml-1.png]]&lt;br /&gt;
&lt;br /&gt;
*Instructor and TAs are the &amp;quot;Experts&amp;quot; that can review the assignment.&lt;br /&gt;
*Multiple experts should be able to review the same assignment.&lt;br /&gt;
*When a student views the review, student should understand whether the review was made by an expert or a student.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;br /&gt;
&lt;br /&gt;
=== New Test ===&lt;br /&gt;
New tests will be written to test the new features added, like :&lt;br /&gt;
* assignment should support multiple expert review.&lt;br /&gt;
* current assignment should support vary-rubric-by-round.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
1. Pull request - https://github.com/expertiza/expertiza/pull/1114&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=113595</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=113595"/>
		<updated>2017-11-15T05:07:52Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Use Case Diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Original interface&lt;br /&gt;
[[File:Rsz 1old calibration page.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_old_show.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_GeneralTab.png]]&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page [[File:Rsz_NewGeneral.png‎]]&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”[[File:Rsz_new_show.png|1000px|Updated]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”[[File:New_expert_review_page.png|1000px|Updated]]&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
= Use Case Diagram =&lt;br /&gt;
[[File:Rsz_expertiza_uml-1.png]]&lt;br /&gt;
&lt;br /&gt;
*Instructor and TAs are the &amp;quot;Experts&amp;quot; that can review the assignment.&lt;br /&gt;
*Multiple experts should be able to review the same assignment.&lt;br /&gt;
*When a student views the review, student should understand whether the review was made by an expert or a student.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;br /&gt;
&lt;br /&gt;
=== New Test ===&lt;br /&gt;
New tests will be written to test the new features added, like :&lt;br /&gt;
* assignment should support multiple expert review.&lt;br /&gt;
* current assignment should support vary-rubric-by-round.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=113594</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=113594"/>
		<updated>2017-11-15T05:03:43Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Use Case Diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Original interface&lt;br /&gt;
[[File:Rsz 1old calibration page.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_old_show.png|1000px|Updated]]&lt;br /&gt;
[[File:Rsz_GeneralTab.png]]&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page [[File:Rsz_NewGeneral.png‎]]&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”[[File:Rsz_new_show.png|1000px|Updated]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”[[File:New_expert_review_page.png|1000px|Updated]]&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
= Use Case Diagram =&lt;br /&gt;
[[File:Rsz_expertiza_uml-1.png]]&lt;br /&gt;
&lt;br /&gt;
*Instructor and TAs are the &amp;quot;Experts&amp;quot; reviewing the assignment.&lt;br /&gt;
*Multiple experts should be able to review the same assignment.&lt;br /&gt;
*When a student views the review, student should understand whether the review was made by an expert or a student.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;br /&gt;
&lt;br /&gt;
=== New Test ===&lt;br /&gt;
New tests will be written to test the new features added, like :&lt;br /&gt;
* assignment should support multiple expert review.&lt;br /&gt;
* current assignment should support vary-rubric-by-round.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112191</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112191"/>
		<updated>2017-11-07T04:05:05Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
Original:&lt;br /&gt;
[[File: Old_Show_17a1.png]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112190</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112190"/>
		<updated>2017-11-07T04:04:44Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
'''Expertiza'''&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
Original:&lt;br /&gt;
[[File: Old_Show_17a1.png]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112188</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112188"/>
		<updated>2017-11-07T04:03:06Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
== Expertiza ==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
= Existing Limitations =&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
= Tasks =&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
Original:&lt;br /&gt;
[[File: Old_Show_17a1.png]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112186</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112186"/>
		<updated>2017-11-07T04:00:34Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
=== Tasks ===&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
Original:&lt;br /&gt;
[[File: Old_Show_17a1.png]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
'''Change in database'''&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
'''Change in User interface'''&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
* #assignments/edit/_calibration.html.erb&lt;br /&gt;
* #response/show_calibration_results_for_student.html.erb&lt;br /&gt;
* #student_review/_responses.html.erb&lt;br /&gt;
* #student_review/list.html.erb&lt;br /&gt;
* #assignments/edit.html.erb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112184</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112184"/>
		<updated>2017-11-07T03:53:19Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Existing Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Students are not able to see how an expert has rated the assignment, they can only see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
=== Tasks ===&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
Original:&lt;br /&gt;
[[Image: Old_Show_17a1.png]]&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
==== Change in database ====&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
==== Change in User interface ====&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
#student_review/_responses.html.erb&lt;br /&gt;
#student_review/list.html.erb&lt;br /&gt;
#assignments/edit.html.erb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112181</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112181"/>
		<updated>2017-11-07T03:50:27Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Existing Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
*Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
*For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
*Moreover,if an expert (instructor or TA) has reviewed an assignment, the students should be able to see how that expert rated the assignment, just like they can see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
=== Tasks ===&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
==== Change in database ====&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
==== Change in User interface ====&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
#student_review/_responses.html.erb&lt;br /&gt;
#student_review/list.html.erb&lt;br /&gt;
#assignments/edit.html.erb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112163</id>
		<title>CSC/ECE 517 Fall 2017/E17A1 Expert Review.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1_Expert_Review.rb&amp;diff=112163"/>
		<updated>2017-11-07T03:07:38Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: First draft of Expertiza final project (Fall 2017) E17A1: Let experts as well as students do reviews&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
**Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature.&lt;br /&gt;
**For student side, there is no way to notify for an author to tell that a particular review that they received was submitted by an expert. &lt;br /&gt;
**Moreover,if an expert (instructor or TA) has reviewed an assignment, the students should be able to see how that expert rated the assignment, just like they can see calibration results for calibrated assignments by clicking on the “Show calibration results” link.&lt;br /&gt;
&lt;br /&gt;
=== Tasks ===&lt;br /&gt;
*Change in DB Schema&lt;br /&gt;
**“is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
**“calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
*User interface changes&lt;br /&gt;
**Instructor side&lt;br /&gt;
***In assignment setting page (“General” tab), change the checkbox title from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
***When instructor clicks that checkbox, there will be a new tab named “Calibration”. Change the tab name from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
**Student side&lt;br /&gt;
***Change the link title from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
***Change the title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
*New features&lt;br /&gt;
**Let expert review support the vary-rubric-by-round functionality&lt;br /&gt;
**Support multiple expert reviews (Both TAs and instructors could do expert reviews)&lt;br /&gt;
*Tests&lt;br /&gt;
**Create expert_review_spec.rb file in spec/features folder&lt;br /&gt;
*Additional minor changes&lt;br /&gt;
**Reflect changes in DB schema at all places, including tests.&lt;br /&gt;
**Change the partial file name from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
**Rename “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb” and also change other call sites&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
==== Change in database ====&lt;br /&gt;
The following schema changes will be implemented using a new migration file:&lt;br /&gt;
* “is_calibrated” field in assignment table to “has_expert_review”&lt;br /&gt;
* “calibrate_to” field in response_map table to “expert_review_to”&lt;br /&gt;
&lt;br /&gt;
==== Change in User interface ====&lt;br /&gt;
The following files will be edited to reflect the changes in user interface as mentioned in tasks:&lt;br /&gt;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
#student_review/_responses.html.erb&lt;br /&gt;
#student_review/list.html.erb&lt;br /&gt;
#assignments/edit.html.erb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
*Existing tests should be changed according to changes in database schema and user interface.&lt;br /&gt;
*A new test file expert_review_spec.rb will be created to unit test the changes with the following steps:&lt;br /&gt;
* Log in using instructor's or teaching assistant's credentials.&lt;br /&gt;
* General tab should have the checkbox titled 'Add expert peer review?'&lt;br /&gt;
* Click on the checkbox.&lt;br /&gt;
* There should be a tab &amp;quot;Expert review&amp;quot; on the assignment setting page.&lt;br /&gt;
* Log out and log in back using student's credentials.&lt;br /&gt;
* There should be a link titled 'show expert peer-review results' &lt;br /&gt;
* Test multiple expert reviews by submitting multiple reviews when logged in as an instructor or TA for the same assignment.&lt;br /&gt;
* Also test the vary-rubric-by-round functionality.&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110954</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110954"/>
		<updated>2017-10-30T02:00:38Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Testing from UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
====Problem Statement====&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
====Current Implementation====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': Import / Export controller&lt;br /&gt;
::The feature to allow importing Questions from files and exporting the questions had been broken since the refactoring of Questionnaire controller in [https://github.com/expertiza/expertiza/issues/577 summer 2015]. &lt;br /&gt;
&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
**The export file and import file views have to be enhanced to allow import/export of questions.&lt;br /&gt;
**Questionnaire edit view will have to be enhanced to render the export_file/start and import_file/start views which would support importing questions from and importing questions to CSV files.&lt;br /&gt;
&lt;br /&gt;
====Enhancements====&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Integrating export_file and import_file section with the questionnaire view allows questions to be imported into system from file, example CSV file and also to export question entries from system into an external file.&lt;br /&gt;
*The export_file and import_file views are now partial rendered as part of the edit questionnaire view. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         &amp;lt;%= link_to 'Import Questionnaire', :controller=&amp;gt;'import_file', :action=&amp;gt;'start', :model =&amp;gt; 'Question', :id=&amp;gt; @questionnaire.id, :expected_fields =&amp;gt; 'txt, type ,seq,size, break_before' %&amp;gt;|&lt;br /&gt;
         &amp;lt;%= link_to 'Export Questionnaire', :controller=&amp;gt;'export_file',:action=&amp;gt;'start',:model=&amp;gt; 'Question',:id=&amp;gt; @questionnaire.id %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Testing from UI====&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questionnaire.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Export&amp;quot; button can be used to export all the questions and its associated details from the current questionnaire into a csv file that would named with the name of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
6. Choose the file that contains the questions to be imported into the questionnaire and press &amp;quot;Import&amp;quot; button to import the details into questionnaire.&lt;br /&gt;
*The columns expected in the csv file would be displayed in the same page in the expected order.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[https://www.youtube.com/watch?v=UX74MCM-kK0&amp;amp;feature=youtu.be Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110953</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110953"/>
		<updated>2017-10-30T02:00:26Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Automated Testing using RSPEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
====Problem Statement====&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
====Current Implementation====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': Import / Export controller&lt;br /&gt;
::The feature to allow importing Questions from files and exporting the questions had been broken since the refactoring of Questionnaire controller in [https://github.com/expertiza/expertiza/issues/577 summer 2015]. &lt;br /&gt;
&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
**The export file and import file views have to be enhanced to allow import/export of questions.&lt;br /&gt;
**Questionnaire edit view will have to be enhanced to render the export_file/start and import_file/start views which would support importing questions from and importing questions to CSV files.&lt;br /&gt;
&lt;br /&gt;
====Enhancements====&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Integrating export_file and import_file section with the questionnaire view allows questions to be imported into system from file, example CSV file and also to export question entries from system into an external file.&lt;br /&gt;
*The export_file and import_file views are now partial rendered as part of the edit questionnaire view. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         &amp;lt;%= link_to 'Import Questionnaire', :controller=&amp;gt;'import_file', :action=&amp;gt;'start', :model =&amp;gt; 'Question', :id=&amp;gt; @questionnaire.id, :expected_fields =&amp;gt; 'txt, type ,seq,size, break_before' %&amp;gt;|&lt;br /&gt;
         &amp;lt;%= link_to 'Export Questionnaire', :controller=&amp;gt;'export_file',:action=&amp;gt;'start',:model=&amp;gt; 'Question',:id=&amp;gt; @questionnaire.id %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Testing from UI====&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questionnaire.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Export&amp;quot; button can be used to export all the questions and its associated details from the current questionnaire into a csv file that would named with the name of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
6. Choose the file that contains the questions to be imported into the questionnaire and press &amp;quot;Import&amp;quot; button to import the details into questionnaire.&lt;br /&gt;
*The columns expected in the csv file would be displayed in the same page in the expected order.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[https://www.youtube.com/watch?v=UX74MCM-kK0&amp;amp;feature=youtu.be Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110952</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110952"/>
		<updated>2017-10-30T02:00:17Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Code improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
====Problem Statement====&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
====Current Implementation====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': Import / Export controller&lt;br /&gt;
::The feature to allow importing Questions from files and exporting the questions had been broken since the refactoring of Questionnaire controller in [https://github.com/expertiza/expertiza/issues/577 summer 2015]. &lt;br /&gt;
&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
**The export file and import file views have to be enhanced to allow import/export of questions.&lt;br /&gt;
**Questionnaire edit view will have to be enhanced to render the export_file/start and import_file/start views which would support importing questions from and importing questions to CSV files.&lt;br /&gt;
&lt;br /&gt;
====Enhancements====&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Integrating export_file and import_file section with the questionnaire view allows questions to be imported into system from file, example CSV file and also to export question entries from system into an external file.&lt;br /&gt;
*The export_file and import_file views are now partial rendered as part of the edit questionnaire view. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         &amp;lt;%= link_to 'Import Questionnaire', :controller=&amp;gt;'import_file', :action=&amp;gt;'start', :model =&amp;gt; 'Question', :id=&amp;gt; @questionnaire.id, :expected_fields =&amp;gt; 'txt, type ,seq,size, break_before' %&amp;gt;|&lt;br /&gt;
         &amp;lt;%= link_to 'Export Questionnaire', :controller=&amp;gt;'export_file',:action=&amp;gt;'start',:model=&amp;gt; 'Question',:id=&amp;gt; @questionnaire.id %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Automated Testing using RSPEC====&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
====Testing from UI====&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questionnaire.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Export&amp;quot; button can be used to export all the questions and its associated details from the current questionnaire into a csv file that would named with the name of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
6. Choose the file that contains the questions to be imported into the questionnaire and press &amp;quot;Import&amp;quot; button to import the details into questionnaire.&lt;br /&gt;
*The columns expected in the csv file would be displayed in the same page in the expected order.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[https://www.youtube.com/watch?v=UX74MCM-kK0&amp;amp;feature=youtu.be Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110951</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110951"/>
		<updated>2017-10-30T01:59:52Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* Drawbacks and Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
====Problem Statement====&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
====Current Implementation====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': Import / Export controller&lt;br /&gt;
::The feature to allow importing Questions from files and exporting the questions had been broken since the refactoring of Questionnaire controller in [https://github.com/expertiza/expertiza/issues/577 summer 2015]. &lt;br /&gt;
&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
**The export file and import file views have to be enhanced to allow import/export of questions.&lt;br /&gt;
**Questionnaire edit view will have to be enhanced to render the export_file/start and import_file/start views which would support importing questions from and importing questions to CSV files.&lt;br /&gt;
&lt;br /&gt;
====Enhancements====&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Integrating export_file and import_file section with the questionnaire view allows questions to be imported into system from file, example CSV file and also to export question entries from system into an external file.&lt;br /&gt;
*The export_file and import_file views are now partial rendered as part of the edit questionnaire view. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         &amp;lt;%= link_to 'Import Questionnaire', :controller=&amp;gt;'import_file', :action=&amp;gt;'start', :model =&amp;gt; 'Question', :id=&amp;gt; @questionnaire.id, :expected_fields =&amp;gt; 'txt, type ,seq,size, break_before' %&amp;gt;|&lt;br /&gt;
         &amp;lt;%= link_to 'Export Questionnaire', :controller=&amp;gt;'export_file',:action=&amp;gt;'start',:model=&amp;gt; 'Question',:id=&amp;gt; @questionnaire.id %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Code improvements=====&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
====Automated Testing using RSPEC====&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
====Testing from UI====&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questionnaire.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Export&amp;quot; button can be used to export all the questions and its associated details from the current questionnaire into a csv file that would named with the name of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
6. Choose the file that contains the questions to be imported into the questionnaire and press &amp;quot;Import&amp;quot; button to import the details into questionnaire.&lt;br /&gt;
*The columns expected in the csv file would be displayed in the same page in the expected order.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[https://www.youtube.com/watch?v=UX74MCM-kK0&amp;amp;feature=youtu.be Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110950</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110950"/>
		<updated>2017-10-30T01:58:59Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
====Problem Statement====&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
====Current Implementation====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': TODO: Add import/export problem&lt;br /&gt;
::The feature to allow importing Questions from files and exporting the questions had been broken since the refactoring of Questionnaire controller in [https://github.com/expertiza/expertiza/issues/577 summer 2015]. &lt;br /&gt;
&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
**The export file and import file views have to be enhanced to allow import/export of questions.&lt;br /&gt;
**Questionnaire edit view will have to be enhanced to render the export_file/start and import_file/start views which would support importing questions from and importing questions to CSV files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Enhancements====&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Integrating export_file and import_file section with the questionnaire view allows questions to be imported into system from file, example CSV file and also to export question entries from system into an external file.&lt;br /&gt;
*The export_file and import_file views are now partial rendered as part of the edit questionnaire view. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         &amp;lt;%= link_to 'Import Questionnaire', :controller=&amp;gt;'import_file', :action=&amp;gt;'start', :model =&amp;gt; 'Question', :id=&amp;gt; @questionnaire.id, :expected_fields =&amp;gt; 'txt, type ,seq,size, break_before' %&amp;gt;|&lt;br /&gt;
         &amp;lt;%= link_to 'Export Questionnaire', :controller=&amp;gt;'export_file',:action=&amp;gt;'start',:model=&amp;gt; 'Question',:id=&amp;gt; @questionnaire.id %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Code improvements=====&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
====Automated Testing using RSPEC====&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
====Testing from UI====&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questionnaire.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Export&amp;quot; button can be used to export all the questions and its associated details from the current questionnaire into a csv file that would named with the name of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
6. Choose the file that contains the questions to be imported into the questionnaire and press &amp;quot;Import&amp;quot; button to import the details into questionnaire.&lt;br /&gt;
*The columns expected in the csv file would be displayed in the same page in the expected order.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[https://www.youtube.com/watch?v=UX74MCM-kK0&amp;amp;feature=youtu.be Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109823</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb.</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109823"/>
		<updated>2017-10-27T13:31:04Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: moved CSC/ECE 517 Fall 2017/E1765 Rubrics.rb. to Archived - CSC/ECE 517 Fall 2017/E1765 Rubrics.rb.: Incorrect name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Archived - CSC/ECE 517 Fall 2017/E1765 Rubrics.rb.]]&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Archived_-_CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109822</id>
		<title>Archived - CSC/ECE 517 Fall 2017/E1765 Rubrics.rb.</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Archived_-_CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109822"/>
		<updated>2017-10-27T13:31:04Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: moved CSC/ECE 517 Fall 2017/E1765 Rubrics.rb. to Archived - CSC/ECE 517 Fall 2017/E1765 Rubrics.rb.: Incorrect name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': TODO: Add import/export problem&lt;br /&gt;
::Description&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Implementation===&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TODO: Add new implementation for import/export functionality.&lt;br /&gt;
&lt;br /&gt;
===Code improvements===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Automated Testing using RSPEC===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Testing from UI===&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
5. TODO: Add steps for import/export reuse&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[ Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=109821</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=109821"/>
		<updated>2017-10-27T13:28:59Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: Created page with &amp;quot;==E1765. OSS project Brown: Rubrics==  This page provides a description of the Expertiza based OSS project.    __TOC__   ===About Expertiza===  [http://expertiza.ncsu.edu/ Expert...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': TODO: Add import/export problem&lt;br /&gt;
::Description&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Implementation===&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TODO: Add new implementation for import/export functionality.&lt;br /&gt;
&lt;br /&gt;
===Code improvements===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Automated Testing using RSPEC===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Testing from UI===&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
5. TODO: Add steps for import/export reuse&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[ Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Archived_-_CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109820</id>
		<title>Archived - CSC/ECE 517 Fall 2017/E1765 Rubrics.rb.</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Archived_-_CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109820"/>
		<updated>2017-10-27T13:27:21Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: /* E1765. OSS project Brown: Rubrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': TODO: Add import/export problem&lt;br /&gt;
::Description&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Implementation===&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TODO: Add new implementation for import/export functionality.&lt;br /&gt;
&lt;br /&gt;
===Code improvements===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Automated Testing using RSPEC===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Testing from UI===&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
5. TODO: Add steps for import/export reuse&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[ Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Archived_-_CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109819</id>
		<title>Archived - CSC/ECE 517 Fall 2017/E1765 Rubrics.rb.</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Archived_-_CSC/ECE_517_Fall_2017/E1765_Rubrics.rb.&amp;diff=109819"/>
		<updated>2017-10-27T13:26:35Z</updated>

		<summary type="html">&lt;p&gt;Anjain2: Created page with &amp;quot;==E1765. OSS project Brown: Rubrics==  This page provides a description of the Expertiza based OSS project.    __TOC__   ===About Expertiza===  [http://expertiza.ncsu.edu/ Expert...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==E1765. OSS project Brown: Rubrics==&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;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. The Expertiza project is software to create reusable learning objects through peer review. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
The following tasks were accomplished in this project:&lt;br /&gt;
&lt;br /&gt;
* Fixed Issue [https://github.com/expertiza/expertiza/issues/696 696]: Instructors can make changes to each others' rubric, which should not happen&lt;br /&gt;
* Updated action_allowed for access_control to prevent unauthorized access of methods..&lt;br /&gt;
* Implemented new feature [https://github.com/expertiza/expertiza/issues/577 577]: Dumping and loading rubric criterion from CSV&lt;br /&gt;
* Refactored Questionnaires Controller to use existing Import and Export controllers.&lt;br /&gt;
* Added import method in Questions model to enable creation of questions from CSV.&lt;br /&gt;
&lt;br /&gt;
===About Questionnaires Controller===&lt;br /&gt;
This class manages the questions attached to a questionnaire. It enables the creation of new questionnaires, and editing of existing questionnaires. The questions attached to the questionnaire can either be added/updated manually from the user interface or imported from an existing comma separated file. Once the questions are added/updated satisfactorily, they can be exported as a comma separated file. The controller currently has its own import and export methods to achieve this functionality.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Functionality=====&lt;br /&gt;
* Any user irrespective of his/ her privileges can edit the questionnaire.&lt;br /&gt;
::The questionnaire should be restricted to be editable only by an instructor, administrator, or a super administrator. Furthermore, an existing questionnaire should be restricted to be editable only by the instructor who created the questionnaire in the first place.&lt;br /&gt;
* Import and Export functionality in the Questionnaires Controller&lt;br /&gt;
::The current implementation of the Questionnaires controller uses its own import and export methods. The Questionnaires controller should instead use the import and export implemented for the intended purpose. This promotes separation of concerns and code reuse.&lt;br /&gt;
&lt;br /&gt;
=====Drawbacks and Solutions=====&lt;br /&gt;
* '''Problem 1''': An instructor can change others' review rubrics.&lt;br /&gt;
::The method action_allowed in Questionnaires controller returns true for any user role for all actions.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
     ['Super-Administrator',&lt;br /&gt;
      'Administrator',&lt;br /&gt;
      'Instructor',&lt;br /&gt;
      'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Solution''': The implementation has been changed in such a way that the restriction on who is allowed to edit an existing rubric is as follows:&lt;br /&gt;
**A super administrator can edit any existing rubric.&lt;br /&gt;
**An administrator can edit any existing rubric.&lt;br /&gt;
**An instructor can only edit an existing rubric if it was created by him or her. An instructor cannot edit a rubric created by another instructor.&lt;br /&gt;
**The other functionalities have been left as it is, assuming that any user can create, view, etc. a new or existing rubric.&lt;br /&gt;
&lt;br /&gt;
* '''Problem 2''': TODO: Add import/export problem&lt;br /&gt;
::Description&lt;br /&gt;
* '''Solution''': Solution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Implementation===&lt;br /&gt;
*The action_allowed? method in Questionnaires controller has been modified to check for separate roles based on the action:&lt;br /&gt;
** If the action is edit, it checks that the user is a super administrator, an administrator, or an instructor who created the questionnaire in the first place.&lt;br /&gt;
** Else, all users are allowed to perform the action. (Assuming that even a student is allowed to add a questionnaire such as polls, surveys, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def action_allowed?&lt;br /&gt;
  if action_name == &amp;quot;edit&amp;quot;&lt;br /&gt;
     @questionnaire = Questionnaire.find(params[:id])&lt;br /&gt;
     (['Super-Administrator',&lt;br /&gt;
      'Administrator'&lt;br /&gt;
      ].include? current_role_name)  ||&lt;br /&gt;
         ((['Instructor'].include? current_role_name) &amp;amp;&amp;amp; current_user_id?( @questionnaire.instructor_id))&lt;br /&gt;
  else&lt;br /&gt;
      ['Super-Administrator',&lt;br /&gt;
       'Administrator',&lt;br /&gt;
       'Instructor',&lt;br /&gt;
       'Teaching Assistant', 'Student'].include? current_role_name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TODO: Add new implementation for import/export functionality.&lt;br /&gt;
&lt;br /&gt;
===Code improvements===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Automated Testing using RSPEC===&lt;br /&gt;
TODO: If any&lt;br /&gt;
&lt;br /&gt;
===Testing from UI===&lt;br /&gt;
TODO: Get proper steps with user name and password&lt;br /&gt;
Following are a few testcases with respect to our code changes that can be tried from UI:&lt;br /&gt;
1. Log in as instructor 1 and create a new rubric.&lt;br /&gt;
&lt;br /&gt;
2. Log in as another instructor. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as a student. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
3. Re log in as instructor 1. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
4. Re log in as a super administrator / admininstrator. Go to [ Edit] page for the rubric and try to edit the questions.&lt;br /&gt;
&lt;br /&gt;
5. TODO: Add steps &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/akshayjain114/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[ Demo link] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;br /&gt;
#Clean Code: A handbook of agile software craftsmanship. Author: Robert C Martin&lt;/div&gt;</summary>
		<author><name>Anjain2</name></author>
	</entry>
</feed>