<?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=Sshah14</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=Sshah14"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Sshah14"/>
	<updated>2026-06-07T01:47:45Z</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&amp;diff=112764</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112764"/>
		<updated>2017-11-09T18:48:03Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Problem Statement and Project Purpose =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the User Interface changes that are to be made as part of the project.&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the General tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the Calibration tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change2.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the flow of control in case of peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FlowChart.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112763</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112763"/>
		<updated>2017-11-09T18:46:59Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Problem Statement and Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the User Interface changes that are to be made as part of the project.&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the General tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the Calibration tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change2.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the flow of control in case of peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FlowChart.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112762</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112762"/>
		<updated>2017-11-09T18:46:37Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Problem Statement/Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the User Interface changes that are to be made as part of the project.&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the General tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the Calibration tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change2.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the flow of control in case of peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FlowChart.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112761</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112761"/>
		<updated>2017-11-09T18:45:58Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the User Interface changes that are to be made as part of the project.&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the General tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the Calibration tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change2.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the flow of control in case of peer reviews.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FlowChart.png | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112760</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112760"/>
		<updated>2017-11-09T18:45:25Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the User Interface changes that are to be made as part of the project.&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the General tab.&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the Calibration tab.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change2.png | center ]]&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the flow of control in case of peer reviews.&lt;br /&gt;
&lt;br /&gt;
[[File:FlowChart.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:FlowChart.png&amp;diff=112759</id>
		<title>File:FlowChart.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:FlowChart.png&amp;diff=112759"/>
		<updated>2017-11-09T18:44:21Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112750</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112750"/>
		<updated>2017-11-09T17:22:16Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the User Interface changes that are to be made as part of the project.&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the General tab.&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This diagram shows the Assignment Setting page in the Calibration tab.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change2.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112749</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112749"/>
		<updated>2017-11-09T17:21:09Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change2.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:17A1Change2.png&amp;diff=112748</id>
		<title>File:17A1Change2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:17A1Change2.png&amp;diff=112748"/>
		<updated>2017-11-09T17:20:37Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: uploaded a new version of &amp;amp;quot;File:17A1Change2.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1_copy.jpg&amp;diff=112747</id>
		<title>File:Change1 copy.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1_copy.jpg&amp;diff=112747"/>
		<updated>2017-11-09T17:19:34Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: uploaded a new version of &amp;amp;quot;File:Change1 copy.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1_copy.jpg&amp;diff=112746</id>
		<title>File:Change1 copy.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1_copy.jpg&amp;diff=112746"/>
		<updated>2017-11-09T17:18:41Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: uploaded a new version of &amp;amp;quot;File:Change1 copy.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112745</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112745"/>
		<updated>2017-11-09T17:17:23Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:Change1 copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112744</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112744"/>
		<updated>2017-11-09T17:16:53Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:Change1-copy.jpg | center ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1_copy.jpg&amp;diff=112743</id>
		<title>File:Change1 copy.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1_copy.jpg&amp;diff=112743"/>
		<updated>2017-11-09T17:16:15Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112742</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112742"/>
		<updated>2017-11-09T17:14:16Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change1.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112741</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112741"/>
		<updated>2017-11-09T17:13:27Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change1.png | center | 1000x1500px]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112740</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112740"/>
		<updated>2017-11-09T17:13:13Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change1.png | center | 100x150px]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112739</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112739"/>
		<updated>2017-11-09T17:12:00Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change1.png | center 100px x150px]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112738</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112738"/>
		<updated>2017-11-09T17:09:54Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change1.png | center | upright=1 ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112737</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112737"/>
		<updated>2017-11-09T17:09:43Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change1.png | center | upright=10 ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112736</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112736"/>
		<updated>2017-11-09T17:08:32Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
[[File:17A1Change1.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:17A1Change2.png&amp;diff=112735</id>
		<title>File:17A1Change2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:17A1Change2.png&amp;diff=112735"/>
		<updated>2017-11-09T17:07:22Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:17A1Change1.png&amp;diff=112734</id>
		<title>File:17A1Change1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:17A1Change1.png&amp;diff=112734"/>
		<updated>2017-11-09T17:06:51Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1.png&amp;diff=112733</id>
		<title>File:Change1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Change1.png&amp;diff=112733"/>
		<updated>2017-11-09T17:05:46Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: uploaded a new version of &amp;amp;quot;File:Change1.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112732</id>
		<title>CSC/ECE 517 Fall 2017/E17A1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E17A1&amp;diff=112732"/>
		<updated>2017-11-09T16:55:18Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &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;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Environment Setup ==&lt;br /&gt;
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza&lt;br /&gt;
bash ./setup.sh&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''VCL Setup'''&lt;br /&gt;
The process of getting expertiza up and running on VCL is well detailed in the following [https://youtu.be/AStOjov7EQk video].&lt;br /&gt;
After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:&lt;br /&gt;
* Steps to install Redis:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://download.redis.io/redis-stable.tar.gz&lt;br /&gt;
tar xvzf redis-stable.tar.gz&lt;br /&gt;
cd redis-stable&lt;br /&gt;
make&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the redis-server using:&lt;br /&gt;
&amp;lt;pre&amp;gt;redis-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Steps to install NodeJS on CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz&lt;br /&gt;
tar xzvf node-v* &amp;amp;&amp;amp; cd node-v*&lt;br /&gt;
sudo yum install gcc gcc-c++&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the expertiza Rails server&lt;br /&gt;
&amp;lt;pre&amp;gt;thin start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For logging in as an student:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: student17 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
=== Existing Limitations ===&lt;br /&gt;
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:&lt;br /&gt;
# No support for varying rubric by round feature.&lt;br /&gt;
# From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise. &lt;br /&gt;
# A student is not notified once an expert submits a review.&lt;br /&gt;
# Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(''As seen when '''Show Calibration Results''' is clicked.''). &lt;br /&gt;
&lt;br /&gt;
=== Tasks Involved ===&lt;br /&gt;
Tasks are broken down into sub-tasks as follows:&lt;br /&gt;
* Refactoring:&lt;br /&gt;
** a checkbox in the &amp;quot;General&amp;quot; Tab from “Calibrated peer-review for training?” to “Add expert peer review?”&lt;br /&gt;
** a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page&lt;br /&gt;
** partial file from “_calibration.html.erb” to “_expert_review.html.erb”&lt;br /&gt;
** the link title on student side from “show calibration results” to “show expert peer-review results”&lt;br /&gt;
** the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”&lt;br /&gt;
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”&lt;br /&gt;
* Functionality changes&lt;br /&gt;
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.&lt;br /&gt;
** Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews.&lt;br /&gt;
&lt;br /&gt;
=== Affected Codebase ===&lt;br /&gt;
==== Database Related ====&lt;br /&gt;
A new migration file needs to be written to make the following changes in the DB Schema (''And across all files using these fields''):&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;
==== Front-end Related ====&lt;br /&gt;
The following files need to be modified and/or refactored based on their respective tasks:&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;
#assignments/edit/_calibration.html.erb&lt;br /&gt;
#response/show_calibration_results_for_student.html.erb&lt;br /&gt;
&lt;br /&gt;
= Project Design =&lt;br /&gt;
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.&lt;br /&gt;
&lt;br /&gt;
The following two patterns are implemented in the project -&lt;br /&gt;
&lt;br /&gt;
1.MVC Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively).&lt;br /&gt;
&lt;br /&gt;
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows the control flow of reviews in expertiza.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.&lt;br /&gt;
&lt;br /&gt;
There are three main actors that interact with the new functionality, these are:&lt;br /&gt;
* Instructors&lt;br /&gt;
* Teaching Assistants&lt;br /&gt;
* Students&lt;br /&gt;
Hence, we would have to write tests for each of these types of users and test the expert review functionality.&lt;br /&gt;
&lt;br /&gt;
The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in [https://github.com/expertiza/expertiza/tree/master/spec/features spec/features] folder. &lt;br /&gt;
&lt;br /&gt;
Some of the tests that we have in mind as of now, are as follows:&lt;br /&gt;
* '''Instructor'''&lt;br /&gt;
** Login as instructor using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the instructor can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to Instructor.&lt;br /&gt;
&lt;br /&gt;
* '''Teaching Assistant'''&lt;br /&gt;
** Login as TA using pre-configured credential.&lt;br /&gt;
** Go to &amp;quot;General&amp;quot; tab &lt;br /&gt;
*** Verify &amp;quot;Add expert peer review?&amp;quot; present instead of &amp;quot;Calibrated peer-review for training?&amp;quot;&lt;br /&gt;
** Verify whether the TA can see &amp;quot;Expert Review&amp;quot; on the assignment setting page.  &lt;br /&gt;
** Perform Expert Review, based on values declared in Fixtures available to TA.&lt;br /&gt;
&lt;br /&gt;
* '''Student'''&lt;br /&gt;
** Log in as Student using pre-configured credential.&lt;br /&gt;
** Verify if student can see &amp;quot;Show expert peer-review results&amp;quot; &lt;br /&gt;
*** When a new expert-review is available.&lt;br /&gt;
*** Show nothing when nothing is available.&lt;br /&gt;
** Testing to check if the reviews show up.&lt;br /&gt;
*** If added by TA.&lt;br /&gt;
*** If added by instructor.&lt;br /&gt;
*** If multiple reviews from either TA or instructor show up as a list.&lt;br /&gt;
** Testing varying-rubric-by-round feature.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E17A1._Let_experts_as_well_as_students_do_reviews.&amp;diff=111806</id>
		<title>E17A1. Let experts as well as students do reviews.</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E17A1._Let_experts_as_well_as_students_do_reviews.&amp;diff=111806"/>
		<updated>2017-11-04T23:03:30Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: Created page with &amp;quot;= Introduction =&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111348</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111348"/>
		<updated>2017-11-02T19:36:16Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===  Setting Up The Working Environment ===&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
== Tasks Assigned ==&lt;br /&gt;
The following tasks were performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Test Plan (Implementation of Functional Tests) =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Code Snippets =&lt;br /&gt;
&lt;br /&gt;
The following test spec has been written to create an assignment survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_questionnaire survey_name&lt;br /&gt;
  visit '/questionnaires/new?model=Assignment+SurveyQuestionnaire&amp;amp;private=0'&lt;br /&gt;
  fill_in 'questionnaire_name', with: survey_name&lt;br /&gt;
  find('input[name=&amp;quot;commit&amp;quot;]').click&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following test spec has been written to deploy an assignment survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def deploy_assignment_survey(start_date, end_date, survey_name)&lt;br /&gt;
  login_as('instructor6')&lt;br /&gt;
  expect(page).to have_content('Manage content')&lt;br /&gt;
  create_assignment_questionnaire survey_name&lt;br /&gt;
  survey = Questionnaire.where(name: survey_name)&lt;br /&gt;
  visit '/survey_deployment/new?id=' + Assignment.where(instructor_id: User.where(name: 'instructor6').first.id).first.id.to_s + '&amp;amp;type=AssignmentSurveyDeployment'&lt;br /&gt;
  expect(page).to have_content('New Survey Deployment')&lt;br /&gt;
  fill_in 'survey_deployment_start_date', with: start_date&lt;br /&gt;
  fill_in 'survey_deployment_end_date', with: end_date&lt;br /&gt;
  select survey.name, from: &amp;quot;survey_deployment_questionnaire_id&amp;quot;&lt;br /&gt;
  find('input[name=&amp;quot;commit&amp;quot;]').click&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following test spec has been written to create a course survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_course_questionnaire survey_name&lt;br /&gt;
  visit '/questionnaires/new?model=Course+SurveyQuestionnaire&amp;amp;private=0'&lt;br /&gt;
  fill_in 'questionnaire_name', with: survey_name&lt;br /&gt;
  find('input[name=&amp;quot;commit&amp;quot;]').click&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following test spec has been written to deploy a course survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def deploy_course_survey(start_date, end_date, survey_name)&lt;br /&gt;
  # Here we login as an instructor to deploy a course survey.&lt;br /&gt;
  login_as('instructor6')&lt;br /&gt;
  expect(page).to have_content('Manage content')&lt;br /&gt;
  create_course_questionnaire survey_name&lt;br /&gt;
  survey = Questionnaire.where(name: survey_name)&lt;br /&gt;
  instructor = User.where(name: 'instructor6').first&lt;br /&gt;
  course = Course.where(instructor_id: instructor.id).first&lt;br /&gt;
  visit '/survey_deployment/new?id=' + course.id.to_s + '&amp;amp;type=CourseSurveyDeployment'&lt;br /&gt;
  expect(page).to have_content('New Survey Deployment')&lt;br /&gt;
  fill_in 'survey_deployment_start_date', with: start_date&lt;br /&gt;
  fill_in 'survey_deployment_end_date', with: end_date&lt;br /&gt;
  select survey.name, from: &amp;quot;survey_deployment_questionnaire_id&amp;quot;&lt;br /&gt;
  find('input[name=&amp;quot;commit&amp;quot;]').click&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
After completion of this project, the creation, deployment, and deletion of surveys will be fully tested.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111340</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111340"/>
		<updated>2017-11-02T19:32:24Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===  Setting Up The Working Environment ===&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
== Tasks Assigned ==&lt;br /&gt;
The following tasks were performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Test Plan (Implementation of Functional Tests) =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Code Snippets =&lt;br /&gt;
&lt;br /&gt;
The following test spec has been written to create an assignment survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def create_assignment_questionnaire survey_name&lt;br /&gt;
  visit '/questionnaires/new?model=Assignment+SurveyQuestionnaire&amp;amp;private=0'&lt;br /&gt;
  fill_in 'questionnaire_name', with: survey_name&lt;br /&gt;
  find('input[name=&amp;quot;commit&amp;quot;]').click&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
After completion of this project, the creation, deployment, and deletion of surveys will be fully tested.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111020</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111020"/>
		<updated>2017-10-30T20:31:01Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===  Setting Up The Working Environment ===&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
== Tasks Assigned ==&lt;br /&gt;
The following tasks were performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
After completion of this project, the creation, deployment, and deletion of surveys will be fully tested.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111019</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111019"/>
		<updated>2017-10-30T20:30:46Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===  Setting Up The Working Environment ===&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
== Tasks Assigned ==&lt;br /&gt;
The following tasks were performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
After completion of this project, the creation, deployment, and deletion of surveys will be fully tested.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111017</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111017"/>
		<updated>2017-10-30T20:30:18Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===  Setting Up The Working Environment ===&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tasks Assigned ==&lt;br /&gt;
The following tasks were performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
After completion of this project, the creation, deployment, and deletion of surveys will be fully tested.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111016</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=111016"/>
		<updated>2017-10-30T20:28:24Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===  Setting Up The Working Environment ===&lt;br /&gt;
''One of several ways to set up the environment and the one we adopted is:-'' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Ubuntu-Expertiza image (.OVA) [Recommended]''' &amp;lt;br&amp;gt;&lt;br /&gt;
:This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing) &amp;lt;br&amp;gt;&lt;br /&gt;
:And you can install VirtualBox (free) and import this image into VirtualBox. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Some machine may require you to enable virtualization and then run the following commands.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd expertiza &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bash ./setup.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;bundle install &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rake db:migrate &amp;lt;/pre&amp;gt;&lt;br /&gt;
*For logging in as an instructor:- &amp;lt;br&amp;gt;&lt;br /&gt;
:Username: instructor6 &amp;lt;br&amp;gt;&lt;br /&gt;
:Password: password &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The following tasks were performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
After completion of this project, the creation, deployment, and deletion of surveys will be fully tested.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017&amp;diff=110763</id>
		<title>CSC/ECE 517 Fall 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017&amp;diff=110763"/>
		<updated>2017-10-28T04:01:01Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Writing Assignment 2'''&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1779. Fix teammate advertisements and requests to join a team]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1773 Investigate and Fix Expertiza Production Version Runtime Exceptions.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1774 Metareview fixes and improvements.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1788 OSS project Maroon Heatmap fixes]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1781 Topic Management]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1745_Refactor_response_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1752 Refactor assignments controller]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1776_Enhance_Imports]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1756 TLD Refactor response.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1772_Refactor reputation_web_service_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/M1754_Mutation Testing on Servo]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1753 OSS project bidding tests]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1766_Test team functionality]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1787_OSS project Bronze Score calculations]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1763 Fix Staggered-Deadline Assignments]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1769_Refactor assignment_form.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1754_Feature_test_of_rubric_advice]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1782 OSS Project Red Assignment Directories]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1748 Add past-due assignments to task list]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1761 Test First Development Refactor assignment.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1780_OSS_Project_Teal_Email_Notification_Enhancements]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1762 Test various kinds of response-map hierarchies]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1759 ]]&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017&amp;diff=110759</id>
		<title>CSC/ECE 517 Fall 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017&amp;diff=110759"/>
		<updated>2017-10-28T04:00:11Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Writing Assignment 2'''&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1779. Fix teammate advertisements and requests to join a team]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1773 Investigate and Fix Expertiza Production Version Runtime Exceptions.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1774 Metareview fixes and improvements.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1788 OSS project Maroon Heatmap fixes]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1781 Topic Management]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1745_Refactor_response_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1752 Refactor assignments controller]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1776_Enhance_Imports]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1756 TLD Refactor response.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1772_Refactor reputation_web_service_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/M1754_Mutation Testing on Servo]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1753 OSS project bidding tests]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1766_Test team functionality]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1787_OSS project Bronze Score calculations]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1763 Fix Staggered-Deadline Assignments]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1769_Refactor assignment_form.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1754_Feature_test_of_rubric_advice]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1782 OSS Project Red Assignment Directories]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1748 Add past-due assignments to task list]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1761 Test First Development Refactor assignment.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1780_OSS_Project_Teal_Email_Notification_Enhancements]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1762 Test various kinds of response-map hierarchies]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1759 Test Survey and Survey Deployment]]&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=110056</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=110056"/>
		<updated>2017-10-27T19:26:23Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. 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 performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
After completion of this project, the creation, deployment, and deletion of surveys will be fully tested.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Archi.png&amp;diff=109988</id>
		<title>File:Archi.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Archi.png&amp;diff=109988"/>
		<updated>2017-10-27T17:33:48Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: uploaded a new version of &amp;amp;quot;File:Archi.png&amp;amp;quot;: Architecture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Architecture of Survey&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Archi.png&amp;diff=109987</id>
		<title>File:Archi.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Archi.png&amp;diff=109987"/>
		<updated>2017-10-27T17:33:18Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: Architecture of Survey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Architecture of Survey&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109986</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109986"/>
		<updated>2017-10-27T17:31:07Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. 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 performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Useri.png | center ]]&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Useri.png&amp;diff=109985</id>
		<title>File:Useri.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Useri.png&amp;diff=109985"/>
		<updated>2017-10-27T17:30:40Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: User Interface For Survey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;User Interface For Survey&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109984</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109984"/>
		<updated>2017-10-27T17:29:16Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. 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 performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Survey.png | center ]]&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Survey.png&amp;diff=109980</id>
		<title>File:Survey.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Survey.png&amp;diff=109980"/>
		<updated>2017-10-27T17:26:02Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: Types of survey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Types of survey&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109973</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109973"/>
		<updated>2017-10-27T17:18:39Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. 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 performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Files modified =&lt;br /&gt;
*spec/features/survey_spec.rb&lt;br /&gt;
*spec/features/assignment_survey_spec.rb&lt;br /&gt;
*spec/features/global_survey_spec.rb&lt;br /&gt;
*spec/features/course_survey_spec.rb&lt;br /&gt;
*spec/features/helpers/instructor_interface_helper.rb&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
Login as an instructor: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Use credentials username: instructor6, password: password. &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Click on Manage -&amp;gt; Questionnaires-&amp;gt; Survey / Global Survey/ Course evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Create a new Survey/ Global Survey/ Course evaluation filling in the parameters asked for. &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Test if the survey is created and deployed and the questions can be added, deleted and modified. &amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109960</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109960"/>
		<updated>2017-10-27T17:08:01Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. 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 performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;br /&gt;
&lt;br /&gt;
= Expertiza Survey Design =&lt;br /&gt;
Expertiza should be able to distribute surveys to the users. &amp;lt;br /&amp;gt;&lt;br /&gt;
The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).  &amp;lt;br /&amp;gt; &lt;br /&gt;
The survey can also be targeted (the admin can specify a group of people who will receive this survey). &amp;lt;br /&amp;gt;   &lt;br /&gt;
The three kinds of surveys in this project are: &amp;lt;br /&amp;gt;&lt;br /&gt;
1. Assignment Survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Global survey questionnaire &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Course evaluation questionnaire &amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109141</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109141"/>
		<updated>2017-10-21T23:48:15Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
=== Expertiza ===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. 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 performed by us as part of our project:&lt;br /&gt;
# Understood the flow of the survey creation and deployment function.&lt;br /&gt;
# Updated the RSpec file in /spec/features/ folder.&lt;br /&gt;
# Used fixtures to create the student record in test DB.  &lt;br /&gt;
# Used Capybara to write functional tests for:&lt;br /&gt;
## Creating a new survey.&lt;br /&gt;
## Creating different types of questions.&lt;br /&gt;
## Editing different types of questions.&lt;br /&gt;
## Deleting different types of questions.&lt;br /&gt;
## Deploying survey.&lt;br /&gt;
# Created multiple tests to check valid and invalid cases. For example, to test valid_start_end_time? by checking that if the start time is later than the end time, the test returns false.&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109140</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109140"/>
		<updated>2017-10-21T23:16:14Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is the description of tests performed under E1759 OSS Assignment - Test surveys and survey deployment, for Fall 2017, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
= Hi =&lt;br /&gt;
== Hi ==&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Sshah14&amp;diff=109139</id>
		<title>User:Sshah14</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Sshah14&amp;diff=109139"/>
		<updated>2017-10-21T23:14:30Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: moved User:Sshah14 to CSC/ECE 517 Fall 2017/E1759: Page Heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[CSC/ECE 517 Fall 2017/E1759]]&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109138</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109138"/>
		<updated>2017-10-21T23:14:30Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: moved User:Sshah14 to CSC/ECE 517 Fall 2017/E1759: Page Heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hi =&lt;br /&gt;
== Hi ==&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109137</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109137"/>
		<updated>2017-10-21T23:13:01Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hi =&lt;br /&gt;
== Hi ==&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109136</id>
		<title>CSC/ECE 517 Fall 2017/E1759</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1759&amp;diff=109136"/>
		<updated>2017-10-21T23:11:40Z</updated>

		<summary type="html">&lt;p&gt;Sshah14: OODD&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi&lt;/div&gt;</summary>
		<author><name>Sshah14</name></author>
	</entry>
</feed>