<?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=Nkashya</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=Nkashya"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Nkashya"/>
	<updated>2026-05-17T02:14:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec4.png&amp;diff=137784</id>
		<title>File:Spec4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec4.png&amp;diff=137784"/>
		<updated>2020-11-24T03:52:07Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137783</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137783"/>
		<updated>2020-11-24T03:51:52Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions&lt;br /&gt;
* All hyperlinks and files associated with the above mentioned participants are copied over as well&lt;br /&gt;
* Participants with the 'Begin' action are not copied over&lt;br /&gt;
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the &amp;lt;i&amp;gt;edit&amp;lt;/i&amp;gt; page.&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Identified Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Identified Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''app/models/assignment_form.rb'''&lt;br /&gt;
* '''app/views/assignments/edit/_calibration.html.erb'''&lt;br /&gt;
* ''' db/schema.rb'''&lt;br /&gt;
&lt;br /&gt;
== Changes in code ==&lt;br /&gt;
All changes mentioned below have been made in &amp;lt;b&amp;gt;app/models/assignment_form.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]&lt;br /&gt;
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
* To check if the UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
The following steps must be performed to test the project UI:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. &amp;lt;br&amp;gt;In this case, the assignment chosen is called &amp;quot;Design exercise&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:editing_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:with_calib.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' Copy the assignment, by selecting the icon shown below&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copying_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copied_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review1.txt in calibration.&lt;br /&gt;
[[File:orgde.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review1.txt created by the participant in original design exercise&lt;br /&gt;
[[File:copde.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video illustrating changes ==&lt;br /&gt;
[https://www.youtube.com/watch?v=cyhy2mVXcPM&amp;amp;feature=youtu.be '''E2075 Video Link''']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
Below are the rspec testcases used to test the application.&lt;br /&gt;
&lt;br /&gt;
[[File:spec1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:spec4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:spec3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]&lt;br /&gt;
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec3.png&amp;diff=137782</id>
		<title>File:Spec3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec3.png&amp;diff=137782"/>
		<updated>2020-11-24T03:51:24Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec2.png&amp;diff=137781</id>
		<title>File:Spec2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec2.png&amp;diff=137781"/>
		<updated>2020-11-24T03:51:07Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: Nkashya uploaded a new version of File:Spec2.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec1.png&amp;diff=137780</id>
		<title>File:Spec1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Spec1.png&amp;diff=137780"/>
		<updated>2020-11-24T03:50:45Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137779</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137779"/>
		<updated>2020-11-24T03:49:49Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions&lt;br /&gt;
* All hyperlinks and files associated with the above mentioned participants are copied over as well&lt;br /&gt;
* Participants with the 'Begin' action are not copied over&lt;br /&gt;
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the &amp;lt;i&amp;gt;edit&amp;lt;/i&amp;gt; page.&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Identified Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Identified Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''app/models/assignment_form.rb'''&lt;br /&gt;
* '''app/views/assignments/edit/_calibration.html.erb'''&lt;br /&gt;
* ''' db/schema.rb'''&lt;br /&gt;
&lt;br /&gt;
== Changes in code ==&lt;br /&gt;
All changes mentioned below have been made in &amp;lt;b&amp;gt;app/models/assignment_form.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]&lt;br /&gt;
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
* To check if the UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
The following steps must be performed to test the project UI:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. &amp;lt;br&amp;gt;In this case, the assignment chosen is called &amp;quot;Design exercise&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:editing_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:with_calib.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' Copy the assignment, by selecting the icon shown below&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copying_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copied_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review1.txt in calibration.&lt;br /&gt;
[[File:orgde.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review1.txt created by the participant in original design exercise&lt;br /&gt;
[[File:copde.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video illustrating changes ==&lt;br /&gt;
[https://www.youtube.com/watch?v=cyhy2mVXcPM&amp;amp;feature=youtu.be '''E2075 Video Link''']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
Below are the rspec testcases used to test the application.&lt;br /&gt;
&lt;br /&gt;
[[File:spec1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:spec2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:spec3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]&lt;br /&gt;
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137778</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137778"/>
		<updated>2020-11-24T03:45:35Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions&lt;br /&gt;
* All hyperlinks and files associated with the above mentioned participants are copied over as well&lt;br /&gt;
* Participants with the 'Begin' action are not copied over&lt;br /&gt;
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the &amp;lt;i&amp;gt;edit&amp;lt;/i&amp;gt; page.&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Identified Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Identified Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''app/models/assignment_form.rb'''&lt;br /&gt;
* '''app/views/assignments/edit/_calibration.html.erb'''&lt;br /&gt;
* ''' db/schema.rb'''&lt;br /&gt;
&lt;br /&gt;
== Changes in code ==&lt;br /&gt;
All changes mentioned below have been made in &amp;lt;b&amp;gt;app/models/assignment_form.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]&lt;br /&gt;
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
* To check if the UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
The following steps must be performed to test the project UI:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. &amp;lt;br&amp;gt;In this case, the assignment chosen is called &amp;quot;Design exercise&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:editing_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:with_calib.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' Copy the assignment, by selecting the icon shown below&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copying_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copied_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review1.txt in calibration.&lt;br /&gt;
[[File:orgde.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review1.txt created by the participant in original design exercise&lt;br /&gt;
[[File:copde.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video illustrating changes ==&lt;br /&gt;
[https://www.youtube.com/watch?v=cyhy2mVXcPM&amp;amp;feature=youtu.be '''E2075 Video Link''']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
Calibration checks were added to the &amp;lt;b&amp;gt;assignments_contoller_spec.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Test1_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Test2_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]&lt;br /&gt;
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137777</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137777"/>
		<updated>2020-11-24T03:45:09Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions&lt;br /&gt;
* All hyperlinks and files associated with the above mentioned participants are copied over as well&lt;br /&gt;
* Participants with the 'Begin' action are not copied over&lt;br /&gt;
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the &amp;lt;i&amp;gt;edit&amp;lt;/i&amp;gt; page.&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Identified Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Identified Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''app/models/assignment_form.rb'''&lt;br /&gt;
* '''app/views/assignments/edit/_calibration.html.erb'''&lt;br /&gt;
* ''' db/schema.rb'''&lt;br /&gt;
&lt;br /&gt;
== Changes in code ==&lt;br /&gt;
All changes mentioned below have been made in &amp;lt;b&amp;gt;app/models/assignment_form.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]&lt;br /&gt;
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
* To check if the UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
The following steps must be performed to test the project UI:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. &amp;lt;br&amp;gt;In this case, the assignment chosen is called &amp;quot;Design exercise&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:editing_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:with_calib.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' Copy the assignment, by selecting the icon shown below&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copying_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copied_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review1.txt in calibration.&lt;br /&gt;
[[File:orgde.png]] &amp;lt;br&amp;gt;&amp;lt;be&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review1.txt created by the participant in original design exercise&lt;br /&gt;
[[File:copde.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video illustrating changes ==&lt;br /&gt;
[https://www.youtube.com/watch?v=cyhy2mVXcPM&amp;amp;feature=youtu.be '''E2075 Video Link''']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
Calibration checks were added to the &amp;lt;b&amp;gt;assignments_contoller_spec.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Test1_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Test2_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]&lt;br /&gt;
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137776</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137776"/>
		<updated>2020-11-24T03:44:15Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions&lt;br /&gt;
* All hyperlinks and files associated with the above mentioned participants are copied over as well&lt;br /&gt;
* Participants with the 'Begin' action are not copied over&lt;br /&gt;
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the &amp;lt;i&amp;gt;edit&amp;lt;/i&amp;gt; page.&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Identified Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Identified Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''app/models/assignment_form.rb'''&lt;br /&gt;
* '''app/views/assignments/edit/_calibration.html.erb'''&lt;br /&gt;
* ''' db/schema.rb'''&lt;br /&gt;
&lt;br /&gt;
== Changes in code ==&lt;br /&gt;
All changes mentioned below have been made in &amp;lt;b&amp;gt;app/models/assignment_form.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]&lt;br /&gt;
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
* To check if the UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
The following steps must be performed to test the project UI:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. &amp;lt;br&amp;gt;In this case, the assignment chosen is called &amp;quot;Design exercise&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:editing_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:with_calib.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' Copy the assignment, by selecting the icon shown below&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copying_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copied_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review1.txt in calibration.&lt;br /&gt;
[[File:orgde.png]] &lt;br /&gt;
&lt;br /&gt;
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review1.txt created by the participant in original design exercise&lt;br /&gt;
[[File:copde.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video illustrating changes ==&lt;br /&gt;
[https://www.youtube.com/watch?v=cyhy2mVXcPM&amp;amp;feature=youtu.be '''E2075 Video Link''']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
Calibration checks were added to the &amp;lt;b&amp;gt;assignments_contoller_spec.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Test1_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Test2_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]&lt;br /&gt;
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Copde.png&amp;diff=137775</id>
		<title>File:Copde.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Copde.png&amp;diff=137775"/>
		<updated>2020-11-24T03:42:34Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Orgde.png&amp;diff=137774</id>
		<title>File:Orgde.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Orgde.png&amp;diff=137774"/>
		<updated>2020-11-24T03:42:21Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137773</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137773"/>
		<updated>2020-11-24T03:41:59Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions&lt;br /&gt;
* All hyperlinks and files associated with the above mentioned participants are copied over as well&lt;br /&gt;
* Participants with the 'Begin' action are not copied over&lt;br /&gt;
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the &amp;lt;i&amp;gt;edit&amp;lt;/i&amp;gt; page.&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Identified Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Identified Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''app/models/assignment_form.rb'''&lt;br /&gt;
* '''app/views/assignments/edit/_calibration.html.erb'''&lt;br /&gt;
* ''' db/schema.rb'''&lt;br /&gt;
&lt;br /&gt;
== Changes in code ==&lt;br /&gt;
All changes mentioned below have been made in &amp;lt;b&amp;gt;app/models/assignment_form.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]&lt;br /&gt;
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
* To check if the UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
The following steps must be performed to test the project UI:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. &amp;lt;br&amp;gt;In this case, the assignment chosen is called &amp;quot;Design exercise&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:editing_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:with_calib.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' Copy the assignment, by selecting the icon shown below&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copying_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copied_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review.txt in calibration.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:orgde.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;be&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review.txt created by the participant in original design exercise&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copde.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;be&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video illustrating changes ==&lt;br /&gt;
[https://www.youtube.com/watch?v=cyhy2mVXcPM&amp;amp;feature=youtu.be '''E2075 Video Link''']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
Calibration checks were added to the &amp;lt;b&amp;gt;assignments_contoller_spec.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Test1_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Test2_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]&lt;br /&gt;
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Originalde.png&amp;diff=137772</id>
		<title>File:Originalde.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Originalde.png&amp;diff=137772"/>
		<updated>2020-11-24T03:40:46Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: Nkashya uploaded a new version of File:Originalde.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Copiedde.png&amp;diff=137771</id>
		<title>File:Copiedde.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Copiedde.png&amp;diff=137771"/>
		<updated>2020-11-24T03:40:13Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Originalde.png&amp;diff=137770</id>
		<title>File:Originalde.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Originalde.png&amp;diff=137770"/>
		<updated>2020-11-24T03:39:55Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137769</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=137769"/>
		<updated>2020-11-24T03:39:27Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions&lt;br /&gt;
* All hyperlinks and files associated with the above mentioned participants are copied over as well&lt;br /&gt;
* Participants with the 'Begin' action are not copied over&lt;br /&gt;
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the &amp;lt;i&amp;gt;edit&amp;lt;/i&amp;gt; page.&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Identified Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Identified Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''app/models/assignment_form.rb'''&lt;br /&gt;
* '''app/views/assignments/edit/_calibration.html.erb'''&lt;br /&gt;
* ''' db/schema.rb'''&lt;br /&gt;
&lt;br /&gt;
== Changes in code ==&lt;br /&gt;
All changes mentioned below have been made in &amp;lt;b&amp;gt;app/models/assignment_form.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]&lt;br /&gt;
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
* To check if the UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
The following steps must be performed to test the project UI:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. &amp;lt;br&amp;gt;In this case, the assignment chosen is called &amp;quot;Design exercise&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:editing_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:with_calib.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' Copy the assignment, by selecting the icon shown below&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copying_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copied_2075.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review.txt in calibration.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:originalde.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;be&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review.txt created by the participant in original design exercise&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copiedde.png |1000px|Image: 1000 pixels]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;be&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video illustrating changes ==&lt;br /&gt;
[https://www.youtube.com/watch?v=cyhy2mVXcPM&amp;amp;feature=youtu.be '''E2075 Video Link''']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
Calibration checks were added to the &amp;lt;b&amp;gt;assignments_contoller_spec.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Test1_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Test2_2075.png |1000px|Image: 1000 pixels]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]&lt;br /&gt;
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136582</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136582"/>
		<updated>2020-10-29T03:22:12Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Previous Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
===Proposed Implementation===&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing Plan ===&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
=== RSpec test to check ===&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Um20221.png&amp;diff=136581</id>
		<title>File:Um20221.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Um20221.png&amp;diff=136581"/>
		<updated>2020-10-29T03:20:50Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Um20201.png&amp;diff=136580</id>
		<title>File:Um20201.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Um20201.png&amp;diff=136580"/>
		<updated>2020-10-29T03:20:36Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136579</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136579"/>
		<updated>2020-10-29T03:20:23Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:um20201.png]]&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:um20221.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing Plan ===&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
=== RSpec test to check ===&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml20201.png&amp;diff=136578</id>
		<title>File:Uml20201.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml20201.png&amp;diff=136578"/>
		<updated>2020-10-29T03:19:10Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136577</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136577"/>
		<updated>2020-10-29T03:15:33Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:uml20201.png]]&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing Plan ===&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
=== RSpec test to check ===&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136576</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136576"/>
		<updated>2020-10-29T03:12:45Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing Plan ===&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
=== RSpec test to check ===&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml2075.png&amp;diff=136575</id>
		<title>File:Uml2075.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml2075.png&amp;diff=136575"/>
		<updated>2020-10-29T03:11:26Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136496</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136496"/>
		<updated>2020-10-29T00:06:01Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:Preimp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing Plan ===&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
=== RSpec test to check ===&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136494</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136494"/>
		<updated>2020-10-29T00:05:22Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:Preimp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing Plan ===&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136490</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136490"/>
		<updated>2020-10-29T00:03:30Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:Preimp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing Plan ===&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136489</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136489"/>
		<updated>2020-10-29T00:02:43Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:Preimp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* Find the hyper link submitted in the submission_records table for the Original exercise. Use the link and insert it into the content attribute for the new copy over exercise when the instructor creates a duplicate &lt;br /&gt;
* If the submissions were in file format, then make a new copy of the file into the directory path structure and use this as the reference pointer in the table for the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
** Expected Outcome : All the calibrated assignments in the original exercise must also be present in the new copy over exercise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Badarinath Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136410</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136410"/>
		<updated>2020-10-28T21:30:41Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Previous Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:Preimp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proposed Implementation'''&lt;br /&gt;
&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
* In the entire database check for tables which store the URL of the submitted student's work. The table which stores it is Submissions_Records&lt;br /&gt;
* The URL from this table should be copied and updated to the database table which stores calibration results.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Futimp.png&amp;diff=136358</id>
		<title>File:Futimp.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Futimp.png&amp;diff=136358"/>
		<updated>2020-10-28T08:38:16Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136357</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136357"/>
		<updated>2020-10-28T08:38:01Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and this Project's Implementation ==&lt;br /&gt;
Previous Implementation&lt;br /&gt;
[[File:Preimp.png]]&lt;br /&gt;
&lt;br /&gt;
This project's Implementation&lt;br /&gt;
[[File:futimp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Preimp.png&amp;diff=136356</id>
		<title>File:Preimp.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Preimp.png&amp;diff=136356"/>
		<updated>2020-10-28T08:32:47Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136355</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136355"/>
		<updated>2020-10-28T08:32:34Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and our desired plan ==&lt;br /&gt;
Previous Implementation&lt;br /&gt;
[[File:Preimp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Previmp.png&amp;diff=136354</id>
		<title>File:Previmp.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Previmp.png&amp;diff=136354"/>
		<updated>2020-10-28T08:26:30Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136353</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136353"/>
		<updated>2020-10-28T08:26:16Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and our desired plan ==&lt;br /&gt;
Previous Implementation&lt;br /&gt;
[[File:Previmp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Pic1.png&amp;diff=136352</id>
		<title>File:Pic1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Pic1.png&amp;diff=136352"/>
		<updated>2020-10-28T08:25:39Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: Nkashya uploaded a new version of File:Pic1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136351</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136351"/>
		<updated>2020-10-28T08:25:06Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and our desired plan ==&lt;br /&gt;
Previous Implementation&lt;br /&gt;
[[File:Pic1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136350</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136350"/>
		<updated>2020-10-28T08:23:07Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Difference between Previous Implementation and our desired plan ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136349</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136349"/>
		<updated>2020-10-28T07:56:15Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Project Purpose ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136348</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136348"/>
		<updated>2020-10-28T04:50:29Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Goal ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
==MVC==&lt;br /&gt;
&lt;br /&gt;
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow(Model, View and Controller).&lt;br /&gt;
&lt;br /&gt;
==Principle==&lt;br /&gt;
&lt;br /&gt;
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.&lt;br /&gt;
&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136347</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136347"/>
		<updated>2020-10-28T04:36:37Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Goal ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
===MVC===&lt;br /&gt;
&lt;br /&gt;
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;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136346</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136346"/>
		<updated>2020-10-28T04:34:41Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Goal ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
===MVC===&lt;br /&gt;
&lt;br /&gt;
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;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Testing Plan ==&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
=== Directions for Manual Testing ===&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment (say A1) that you want to setup calibration for&lt;br /&gt;
** Select the '''copy''' button (generates A2)&lt;br /&gt;
** Toggle onto the calibration tab of the original directory (A1) and check the files present inside it &lt;br /&gt;
** Now, select the copied directory (A2)&lt;br /&gt;
** On the calibrations tab, check whether the copied submissions [Files and URLs] are present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RSpec Testing Plan ==&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
=== Directions for RSpec Testing ===&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Impr3.png&amp;diff=135618</id>
		<title>File:Impr3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Impr3.png&amp;diff=135618"/>
		<updated>2020-10-19T23:45:55Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Impr2.png&amp;diff=135615</id>
		<title>File:Impr2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Impr2.png&amp;diff=135615"/>
		<updated>2020-10-19T23:45:23Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Impr1.png&amp;diff=135614</id>
		<title>File:Impr1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Impr1.png&amp;diff=135614"/>
		<updated>2020-10-19T23:45:06Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135613</id>
		<title>CSC/ECE 517 Fall 2020 - E2056 Account Request Controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135613"/>
		<updated>2020-10-19T23:44:48Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of E2056.&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
Prospective users are allowed to request Expertiza accounts over the web.  When they are requested, the super-admin receives an email, and can go and approve or reject the request.  The requester is then emailed as to whether the account has been approved, and if so, receives login credentials.&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
* Sumitosh Pal (spal3)&lt;br /&gt;
* Mounika Bachu (mbachu)&lt;br /&gt;
* Nischal Badarinath Kashyap (nkashya)&lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
The implementation is tedious to use, since all account requests since the beginning of time appear on the request page, and the super-admin needs to scroll to the bottom to find the current request. The requests can be approved/rejected only one at a time due to form design which can be improved. Also, the method names are quite nonstandard, when a lot of the methods have standard CRUD functionality.&lt;br /&gt;
&lt;br /&gt;
The steps to reach the Pending Account Request Page is as follows:&lt;br /&gt;
&lt;br /&gt;
1. Log in as an admin or superadmin.&lt;br /&gt;
 * User Name: super_administrator2&lt;br /&gt;
 * Password: password &lt;br /&gt;
&lt;br /&gt;
2. Select Administration-&amp;gt;show, which will bring up a list of features.&lt;br /&gt;
&lt;br /&gt;
3. Click on “Pending Requests” from among the list of features to open the page containing requests from instructor/students.&lt;br /&gt;
&lt;br /&gt;
The admin or super admin can see a list of requests made by students and instructor in chronological order which means that the recent requests are at the bottom of the page. This makes the process cumbersome because any operation on newly created requests would be at the bottom of the page. Also requests can be handled only one at a time due to radio button forms format. Moreover, the code has places that are inconsistent with DRY principles and require some refactoring to make them more standardized.&lt;br /&gt;
&lt;br /&gt;
===Improvements for code readability===&lt;br /&gt;
1. Use authorization utilities from helper modules in action_allowed? to maintain code consistency.&lt;br /&gt;
&lt;br /&gt;
2. Commenting on the method foreign to explain the purpose of this method.&lt;br /&gt;
&lt;br /&gt;
3. Refactoring methods such as request_new and make the method more CRUD like.&lt;br /&gt;
&lt;br /&gt;
4. Commenting on sections in create_requested_user_record which is a fairly long method, and includes several steps for creation of users which are not transparent.&lt;br /&gt;
&lt;br /&gt;
===Improvements for UI===&lt;br /&gt;
1. Split the page into two components - a. Current(by default)  b. History(Processed requests)&lt;br /&gt;
 - Current: Displays only pending requests and in Last In First order.&lt;br /&gt;
 - History: Displays all requests other than pending which are accepted or rejected by the admin. &lt;br /&gt;
&lt;br /&gt;
2. Collapse all self introductions in requests to display them in one line and expand them on click for easier interaction. &lt;br /&gt;
&lt;br /&gt;
3. Paginate the list to display only 10 results per page.&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan'''==&lt;br /&gt;
There is an existing rspec file corresponding to the account_request_controller. The changes made in code involve renaming a lot of existing variables and adding a lot of comments for methods, so most of the existing tests are modified instead of creating new ones.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
1. Beside &amp;quot;Home&amp;quot;, click &amp;quot;Administration&amp;quot;, then click &amp;quot;Show&amp;quot; and in Show click &amp;quot;Pending Requests&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Two tabs named Current and History are present. &lt;br /&gt;
&lt;br /&gt;
3. Click on tab named &amp;quot;Current&amp;quot;. It displays all the requests which are &amp;quot;Under Review&amp;quot; status and needs to be approved or rejected.&lt;br /&gt;
&lt;br /&gt;
4. A checkbox is present right beside every request and you can select either all the requests which need to be accepted or all the requests which need to be rejected and  click on &amp;quot;accept&amp;quot; or &amp;quot;reject&amp;quot; button. When you click on &amp;quot;Accept&amp;quot; button, all the requests selected will be accepted and will be moved from Current tab to History tab. Chicking &amp;quot;Reject&amp;quot; button, rejects all the requests selected and will move in a similar fashion.&lt;br /&gt;
&lt;br /&gt;
5. Select tab named &amp;quot;History&amp;quot;. It displays all the requests which are &amp;quot;Approved&amp;quot; or &amp;quot;Rejected&amp;quot; in reverse chronological order.&lt;br /&gt;
&lt;br /&gt;
===RSpec Test===&lt;br /&gt;
&lt;br /&gt;
In spec/controllers/account_request_controller_spec.rb we modified 6 test cases&lt;br /&gt;
&lt;br /&gt;
MODIFIED &lt;br /&gt;
 * input selection is nil&lt;br /&gt;
 * input status is Approved&lt;br /&gt;
 * input status is Approved but save fails&lt;br /&gt;
 * input status is Rejected&lt;br /&gt;
 * input status is Rejected but save fails &lt;br /&gt;
 * create a new page for request&lt;br /&gt;
&lt;br /&gt;
ADDED&lt;br /&gt;
 * list_pending_requested_finalized .&lt;br /&gt;
&lt;br /&gt;
1) According to the modification of each problem, we write test separately to test whether its function is realized or not.&lt;br /&gt;
&lt;br /&gt;
First, we modified method named &amp;quot;request_new&amp;quot; to &amp;quot;new&amp;quot; which creates a new request.&lt;br /&gt;
&lt;br /&gt;
  # test case to create a new page for requests&lt;br /&gt;
  context &amp;quot;#new&amp;quot; do&lt;br /&gt;
    it '1' do&lt;br /&gt;
      allow(Role).to receive(:find_by).with(name: 'instructor').and_return('instructor')&lt;br /&gt;
      params = {role: 'instructor'}&lt;br /&gt;
      post :new, params&lt;br /&gt;
      expect(response).to render_template(:new)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
2) list_pending_requested_finalized is clicked&lt;br /&gt;
  # context &amp;quot;#list_pending_requested_finalized&amp;quot; do&lt;br /&gt;
    it 'test list_pending_requested_finalized view' do&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      get :list_pending_requested_finalized&lt;br /&gt;
      expect(response).to render_template(:list_pending_requested_finalized)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
3) Modified the existing check with the new params.&lt;br /&gt;
[[File:testing_spec_approved.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Solution'''==&lt;br /&gt;
&lt;br /&gt;
===Create User Requested Record===&lt;br /&gt;
The function is designed to receive the information of the User who seeks the permission to access the website. The information is saved into the AccountRequest Model. The task was to split the function into different methods due to it being too verbose or write comments into the code. We chose to add comments into the function as splitting up would be inefficient.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
===Splitting up the Views===&lt;br /&gt;
The task was to design a logic to the existing code such that the administrator would be able to see requests in two different views as in 'Under Review' or 'Approved/Rejected'. An additional function 'list_pending_request_finalized' was added that would filter the requests into 'Approved/Rejected' and the original 'list_pending_request' that filters the requests with 'Under Review' status. By default the requests are ordered in descending order with respect to updated_time with the status - 'Under Review'.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture3.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Picture4.png]]&lt;br /&gt;
&lt;br /&gt;
===Refactoring the code===&lt;br /&gt;
In the account_request_controller_spec.rb file we found a few of typing errors and have corrected and committed as part of this project specification.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture5.png]]&lt;br /&gt;
&lt;br /&gt;
===Refactoring Methods===&lt;br /&gt;
The task was to rename the method names which are inappropriate and to rename CRUD like functions such as Request_new to CRUD function names.&lt;br /&gt;
[[File:solutionnew.png]]&lt;br /&gt;
&lt;br /&gt;
===Method Commenting===&lt;br /&gt;
The method named &amp;quot;Foreign&amp;quot; is ambiguous and Method commenting is done describing the function and its parameters.&lt;br /&gt;
[[File:solutionforeign.png]]&lt;br /&gt;
  &lt;br /&gt;
===Adapting Authorization Utilities===  &lt;br /&gt;
The method action_allowed? has been updated to replace the existing code which used non standard code to check user privileges. Instead, the authorization_helper.rb methods that were added as part of project E1915 has been adapted to maintain code readability.&lt;br /&gt;
[[File:action_allowed.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Reverse Chronology and Pagination===&lt;br /&gt;
The initial query receives all the requests from the database containing AccountRequest table without any form of order. This query that is being passed the list of requests has been modified in order to receive list in descending order of timestamp for updated_at field to show the recently changed requests at the top of list. &lt;br /&gt;
The gem 'will_paginate' is used to access pagination features in pending request page in order to display only specific number of requests at a time for ease of navigation. Using the method &amp;quot;paginate&amp;quot;, the number of results per page can be set. Also the corresponding paginate tab is added in the html page for navigating between pages.&lt;br /&gt;
[[File:list_pending_requested.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Limit Self Introduction===&lt;br /&gt;
The list contains a field called &amp;quot;Self Introduction&amp;quot; in which the user writes a short description about themselves. This field can sometimes be large depending on how new requesting users modify it. To keep the view standardized, a limiter has been added to keep the display intact and expand/collapse the column on clicking it. For this we added a jquery plugin in layouts/application.html.erb&lt;br /&gt;
 - &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://www.viralpatel.net/demo/jquery/jquery.shorten.1.0.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
And the views/account_request/list_pending_requested.html.erb and views/account_request/list_pending_requested_finalized.html.erb are modified as well.&lt;br /&gt;
[[File:expand_collapse.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Result'''==&lt;br /&gt;
&lt;br /&gt;
===How the UI was initially===&lt;br /&gt;
&lt;br /&gt;
[[File:Picture9_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
===Our Improvement===&lt;br /&gt;
&lt;br /&gt;
We can see that we have two tabs named Current and History and in Current we can see all the requests which are in &amp;quot;Under Review&amp;quot; status and which needs to be either Approved or Rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture6_E2056.png]]&lt;br /&gt;
[[File:Picture7_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the check boxes which needs to be approved can be selected at once and get approved after clicking the approve button.&lt;br /&gt;
&lt;br /&gt;
[[File:impr1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the files which got approved are displayed above and gets moved to History tab. Same happens with Rejecting requests.&lt;br /&gt;
&lt;br /&gt;
[[File:impr2.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
In the history tab, All the files which got approved are added to the previous requests which got approved or rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:impr3.png]]&lt;br /&gt;
&lt;br /&gt;
In the requests table the column Self Introduction has a &amp;quot;more&amp;quot; link that lets the user expand the column to view overall content inside it and a &amp;quot;less&amp;quot; to collapse it back to original.&lt;br /&gt;
 &lt;br /&gt;
[[File:imp4.png]]&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Imp1.png&amp;diff=135611</id>
		<title>File:Imp1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Imp1.png&amp;diff=135611"/>
		<updated>2020-10-19T23:43:39Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: Nkashya uploaded a new version of File:Imp1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135607</id>
		<title>CSC/ECE 517 Fall 2020 - E2056 Account Request Controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135607"/>
		<updated>2020-10-19T23:39:03Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of E2056.&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
Prospective users are allowed to request Expertiza accounts over the web.  When they are requested, the super-admin receives an email, and can go and approve or reject the request.  The requester is then emailed as to whether the account has been approved, and if so, receives login credentials.&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
* Sumitosh Pal (spal3)&lt;br /&gt;
* Mounika Bachu (mbachu)&lt;br /&gt;
* Nischal Badarinath Kashyap (nkashya)&lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
The implementation is tedious to use, since all account requests since the beginning of time appear on the request page, and the super-admin needs to scroll to the bottom to find the current request. The requests can be approved/rejected only one at a time due to form design which can be improved. Also, the method names are quite nonstandard, when a lot of the methods have standard CRUD functionality.&lt;br /&gt;
&lt;br /&gt;
The steps to reach the Pending Account Request Page is as follows:&lt;br /&gt;
&lt;br /&gt;
1. Log in as an admin or superadmin.&lt;br /&gt;
 * User Name: super_administrator2&lt;br /&gt;
 * Password: password &lt;br /&gt;
&lt;br /&gt;
2. Select Administration-&amp;gt;show, which will bring up a list of features.&lt;br /&gt;
&lt;br /&gt;
3. Click on “Pending Requests” from among the list of features to open the page containing requests from instructor/students.&lt;br /&gt;
&lt;br /&gt;
The admin or super admin can see a list of requests made by students and instructor in chronological order which means that the recent requests are at the bottom of the page. This makes the process cumbersome because any operation on newly created requests would be at the bottom of the page. Also requests can be handled only one at a time due to radio button forms format. Moreover, the code has places that are inconsistent with DRY principles and require some refactoring to make them more standardized.&lt;br /&gt;
&lt;br /&gt;
===Improvements for code readability===&lt;br /&gt;
1. Use authorization utilities from helper modules in action_allowed? to maintain code consistency.&lt;br /&gt;
&lt;br /&gt;
2. Commenting on the method foreign to explain the purpose of this method.&lt;br /&gt;
&lt;br /&gt;
3. Refactoring methods such as request_new and make the method more CRUD like.&lt;br /&gt;
&lt;br /&gt;
4. Commenting on sections in create_requested_user_record which is a fairly long method, and includes several steps for creation of users which are not transparent.&lt;br /&gt;
&lt;br /&gt;
===Improvements for UI===&lt;br /&gt;
1. Split the page into two components - a. Current(by default)  b. History(Processed requests)&lt;br /&gt;
 - Current: Displays only pending requests and in Last In First order.&lt;br /&gt;
 - History: Displays all requests other than pending which are accepted or rejected by the admin. &lt;br /&gt;
&lt;br /&gt;
2. Collapse all self introductions in requests to display them in one line and expand them on click for easier interaction. &lt;br /&gt;
&lt;br /&gt;
3. Paginate the list to display only 10 results per page.&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan'''==&lt;br /&gt;
There is an existing rspec file corresponding to the account_request_controller. The changes made in code involve renaming a lot of existing variables and adding a lot of comments for methods, so most of the existing tests are modified instead of creating new ones.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
1. Beside &amp;quot;Home&amp;quot;, click &amp;quot;Administration&amp;quot;, then click &amp;quot;Show&amp;quot; and in Show click &amp;quot;Pending Requests&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Two tabs named Current and History are present. &lt;br /&gt;
&lt;br /&gt;
3. Click on tab named &amp;quot;Current&amp;quot;. It displays all the requests which are &amp;quot;Under Review&amp;quot; status and needs to be approved or rejected.&lt;br /&gt;
&lt;br /&gt;
4. A checkbox is present right beside every request and you can select either all the requests which need to be accepted or all the requests which need to be rejected and  click on &amp;quot;accept&amp;quot; or &amp;quot;reject&amp;quot; button. When you click on &amp;quot;Accept&amp;quot; button, all the requests selected will be accepted and will be moved from Current tab to History tab. Chicking &amp;quot;Reject&amp;quot; button, rejects all the requests selected and will move in a similar fashion.&lt;br /&gt;
&lt;br /&gt;
5. Select tab named &amp;quot;History&amp;quot;. It displays all the requests which are &amp;quot;Approved&amp;quot; or &amp;quot;Rejected&amp;quot; in reverse chronological order.&lt;br /&gt;
&lt;br /&gt;
===RSpec Test===&lt;br /&gt;
&lt;br /&gt;
In spec/controllers/account_request_controller_spec.rb we modified 6 test cases&lt;br /&gt;
&lt;br /&gt;
MODIFIED &lt;br /&gt;
 * input selection is nil&lt;br /&gt;
 * input status is Approved&lt;br /&gt;
 * input status is Approved but save fails&lt;br /&gt;
 * input status is Rejected&lt;br /&gt;
 * input status is Rejected but save fails &lt;br /&gt;
 * create a new page for request&lt;br /&gt;
&lt;br /&gt;
ADDED&lt;br /&gt;
 * list_pending_requested_finalized .&lt;br /&gt;
&lt;br /&gt;
1) According to the modification of each problem, we write test separately to test whether its function is realized or not.&lt;br /&gt;
&lt;br /&gt;
First, we modified method named &amp;quot;request_new&amp;quot; to &amp;quot;new&amp;quot; which creates a new request.&lt;br /&gt;
&lt;br /&gt;
  # test case to create a new page for requests&lt;br /&gt;
  context &amp;quot;#new&amp;quot; do&lt;br /&gt;
    it '1' do&lt;br /&gt;
      allow(Role).to receive(:find_by).with(name: 'instructor').and_return('instructor')&lt;br /&gt;
      params = {role: 'instructor'}&lt;br /&gt;
      post :new, params&lt;br /&gt;
      expect(response).to render_template(:new)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
2) list_pending_requested_finalized is clicked&lt;br /&gt;
  # context &amp;quot;#list_pending_requested_finalized&amp;quot; do&lt;br /&gt;
    it 'test list_pending_requested_finalized view' do&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      get :list_pending_requested_finalized&lt;br /&gt;
      expect(response).to render_template(:list_pending_requested_finalized)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
3) Modified the existing check with the new params.&lt;br /&gt;
[[File:testing_spec_approved.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Solution'''==&lt;br /&gt;
&lt;br /&gt;
===Create User Requested Record===&lt;br /&gt;
The function is designed to receive the information of the User who seeks the permission to access the website. The information is saved into the AccountRequest Model. The task was to split the function into different methods due to it being too verbose or write comments into the code. We chose to add comments into the function as splitting up would be inefficient.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
===Splitting up the Views===&lt;br /&gt;
The task was to design a logic to the existing code such that the administrator would be able to see requests in two different views as in 'Under Review' or 'Approved/Rejected'. An additional function 'list_pending_request_finalized' was added that would filter the requests into 'Approved/Rejected' and the original 'list_pending_request' that filters the requests with 'Under Review' status. By default the requests are ordered in descending order with respect to updated_time with the status - 'Under Review'.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture3.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Picture4.png]]&lt;br /&gt;
&lt;br /&gt;
===Refactoring the code===&lt;br /&gt;
In the account_request_controller_spec.rb file we found a few of typing errors and have corrected and committed as part of this project specification.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture5.png]]&lt;br /&gt;
&lt;br /&gt;
===Refactoring Methods===&lt;br /&gt;
The task was to rename the method names which are inappropriate and to rename CRUD like functions such as Request_new to CRUD function names.&lt;br /&gt;
[[File:solutionnew.png]]&lt;br /&gt;
&lt;br /&gt;
===Method Commenting===&lt;br /&gt;
The method named &amp;quot;Foreign&amp;quot; is ambiguous and Method commenting is done describing the function and its parameters.&lt;br /&gt;
[[File:solutionforeign.png]]&lt;br /&gt;
  &lt;br /&gt;
===Adapting Authorization Utilities===  &lt;br /&gt;
The method action_allowed? has been updated to replace the existing code which used non standard code to check user privileges. Instead, the authorization_helper.rb methods that were added as part of project E1915 has been adapted to maintain code readability.&lt;br /&gt;
[[File:action_allowed.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Reverse Chronology and Pagination===&lt;br /&gt;
The initial query receives all the requests from the database containing AccountRequest table without any form of order. This query that is being passed the list of requests has been modified in order to receive list in descending order of timestamp for updated_at field to show the recently changed requests at the top of list. &lt;br /&gt;
The gem 'will_paginate' is used to access pagination features in pending request page in order to display only specific number of requests at a time for ease of navigation. Using the method &amp;quot;paginate&amp;quot;, the number of results per page can be set. Also the corresponding paginate tab is added in the html page for navigating between pages.&lt;br /&gt;
[[File:list_pending_requested.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Limit Self Introduction===&lt;br /&gt;
The list contains a field called &amp;quot;Self Introduction&amp;quot; in which the user writes a short description about themselves. This field can sometimes be large depending on how new requesting users modify it. To keep the view standardized, a limiter has been added to keep the display intact and expand/collapse the column on clicking it. For this we added a jquery plugin in layouts/application.html.erb&lt;br /&gt;
 - &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://www.viralpatel.net/demo/jquery/jquery.shorten.1.0.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
And the views/account_request/list_pending_requested.html.erb and views/account_request/list_pending_requested_finalized.html.erb are modified as well.&lt;br /&gt;
[[File:expand_collapse.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Result'''==&lt;br /&gt;
&lt;br /&gt;
===How the UI was initially===&lt;br /&gt;
&lt;br /&gt;
[[File:Picture9_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
===Our Improvement===&lt;br /&gt;
&lt;br /&gt;
We can see that we have two tabs named Current and History and in Current we can see all the requests which are in &amp;quot;Under Review&amp;quot; status and which needs to be either Approved or Rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture6_E2056.png]]&lt;br /&gt;
[[File:Picture7_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the check boxes which needs to be approved can be selected at once and get approved after clicking the approve button.&lt;br /&gt;
&lt;br /&gt;
[[File:imp1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the files which got approved are displayed above and gets moved to History tab. Same happens with Rejecting requests.&lt;br /&gt;
&lt;br /&gt;
[[File:imp2.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
In the history tab, All the files which got approved are added to the previous requests which got approved or rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:imp3.png]]&lt;br /&gt;
&lt;br /&gt;
In the requests table the column Self Introduction has a &amp;quot;more&amp;quot; link that lets the user expand the column to view overall content inside it and a &amp;quot;less&amp;quot; to collapse it back to original.&lt;br /&gt;
 &lt;br /&gt;
[[File:imp4.png]]&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135606</id>
		<title>CSC/ECE 517 Fall 2020 - E2056 Account Request Controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135606"/>
		<updated>2020-10-19T23:37:36Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of E2056.&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
Prospective users are allowed to request Expertiza accounts over the web.  When they are requested, the super-admin receives an email, and can go and approve or reject the request.  The requester is then emailed as to whether the account has been approved, and if so, receives login credentials.&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
* Sumitosh Pal (spal3)&lt;br /&gt;
* Mounika Bachu (mbachu)&lt;br /&gt;
* Nischal Badarinath Kashyap (nkashya)&lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
The implementation is tedious to use, since all account requests since the beginning of time appear on the request page, and the super-admin needs to scroll to the bottom to find the current request. The requests can be approved/rejected only one at a time due to form design which can be improved. Also, the method names are quite nonstandard, when a lot of the methods have standard CRUD functionality.&lt;br /&gt;
&lt;br /&gt;
The steps to reach the Pending Account Request Page is as follows:&lt;br /&gt;
&lt;br /&gt;
1. Log in as an admin or superadmin.&lt;br /&gt;
 * User Name: super_administrator2&lt;br /&gt;
 * Password: password &lt;br /&gt;
&lt;br /&gt;
2. Select Administration-&amp;gt;show, which will bring up a list of features.&lt;br /&gt;
&lt;br /&gt;
3. Click on “Pending Requests” from among the list of features to open the page containing requests from instructor/students.&lt;br /&gt;
&lt;br /&gt;
The admin or super admin can see a list of requests made by students and instructor in chronological order which means that the recent requests are at the bottom of the page. This makes the process cumbersome because any operation on newly created requests would be at the bottom of the page. Also requests can be handled only one at a time due to radio button forms format. Moreover, the code has places that are inconsistent with DRY principles and require some refactoring to make them more standardized.&lt;br /&gt;
&lt;br /&gt;
===Improvements for code readability===&lt;br /&gt;
1. Use authorization utilities from helper modules in action_allowed? to maintain code consistency.&lt;br /&gt;
&lt;br /&gt;
2. Commenting on the method foreign to explain the purpose of this method.&lt;br /&gt;
&lt;br /&gt;
3. Refactoring methods such as request_new and make the method more CRUD like.&lt;br /&gt;
&lt;br /&gt;
4. Commenting on sections in create_requested_user_record which is a fairly long method, and includes several steps for creation of users which are not transparent.&lt;br /&gt;
&lt;br /&gt;
===Improvements for UI===&lt;br /&gt;
1. Split the page into two components - a. Current(by default)  b. History(Processed requests)&lt;br /&gt;
 - Current: Displays only pending requests and in Last In First order.&lt;br /&gt;
 - History: Displays all requests other than pending which are accepted or rejected by the admin. &lt;br /&gt;
&lt;br /&gt;
2. Collapse all self introductions in requests to display them in one line and expand them on click for easier interaction. &lt;br /&gt;
&lt;br /&gt;
3. Paginate the list to display only 10 results per page.&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan'''==&lt;br /&gt;
There is an existing rspec file corresponding to the account_request_controller. The changes made in code involve renaming a lot of existing variables and adding a lot of comments for methods, so most of the existing tests are modified instead of creating new ones.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
1. Beside &amp;quot;Home&amp;quot;, click &amp;quot;Administration&amp;quot;, then click &amp;quot;Show&amp;quot; and in Show click &amp;quot;Pending Requests&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Two tabs named Current and History are present. &lt;br /&gt;
&lt;br /&gt;
3. Click on tab named &amp;quot;Current&amp;quot;. It displays all the requests which are &amp;quot;Under Review&amp;quot; status and needs to be approved or rejected.&lt;br /&gt;
&lt;br /&gt;
4. A checkbox is present right beside every request and you can select either all the requests which need to be accepted or all the requests which need to be rejected and  click on &amp;quot;accept&amp;quot; or &amp;quot;reject&amp;quot; button. When you click on &amp;quot;Accept&amp;quot; button, all the requests selected will be accepted and will be moved from Current tab to History tab. Chicking &amp;quot;Reject&amp;quot; button, rejects all the requests selected and will move in a similar fashion.&lt;br /&gt;
&lt;br /&gt;
5. Select tab named &amp;quot;History&amp;quot;. It displays all the requests which are &amp;quot;Approved&amp;quot; or &amp;quot;Rejected&amp;quot; in reverse chronological order.&lt;br /&gt;
&lt;br /&gt;
===RSpec Test===&lt;br /&gt;
&lt;br /&gt;
In spec/controllers/account_request_controller_spec.rb we modified 6 test cases&lt;br /&gt;
&lt;br /&gt;
MODIFIED &lt;br /&gt;
 * input selection is nil&lt;br /&gt;
 * input status is Approved&lt;br /&gt;
 * input status is Approved but save fails&lt;br /&gt;
 * input status is Rejected&lt;br /&gt;
 * input status is Rejected but save fails &lt;br /&gt;
 * create a new page for request&lt;br /&gt;
&lt;br /&gt;
ADDED&lt;br /&gt;
 * list_pending_requested_finalized .&lt;br /&gt;
&lt;br /&gt;
1) According to the modification of each problem, we write test separately to test whether its function is realized or not.&lt;br /&gt;
&lt;br /&gt;
First, we modified method named &amp;quot;request_new&amp;quot; to &amp;quot;new&amp;quot; which creates a new request.&lt;br /&gt;
&lt;br /&gt;
  # test case to create a new page for requests&lt;br /&gt;
  context &amp;quot;#new&amp;quot; do&lt;br /&gt;
    it '1' do&lt;br /&gt;
      allow(Role).to receive(:find_by).with(name: 'instructor').and_return('instructor')&lt;br /&gt;
      params = {role: 'instructor'}&lt;br /&gt;
      post :new, params&lt;br /&gt;
      expect(response).to render_template(:new)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
2) list_pending_requested_finalized is clicked&lt;br /&gt;
  # context &amp;quot;#list_pending_requested_finalized&amp;quot; do&lt;br /&gt;
    it 'test list_pending_requested_finalized view' do&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      get :list_pending_requested_finalized&lt;br /&gt;
      expect(response).to render_template(:list_pending_requested_finalized)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
3) Modified the existing check with the new params.&lt;br /&gt;
[[File:testing_spec_approved.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Solution'''==&lt;br /&gt;
&lt;br /&gt;
===Create User Requested Record===&lt;br /&gt;
The function is designed to receive the information of the User who seeks the permission to access the website. The information is saved into the AccountRequest Model. The task was to split the function into different methods due to it being too verbose or write comments into the code. We chose to add comments into the function as splitting up would be inefficient.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
===Splitting up the Views===&lt;br /&gt;
The task was to design a logic to the existing code such that the administrator would be able to see requests in two different views as in 'Under Review' or 'Approved/Rejected'. An additional function 'list_pending_request_finalized' was added that would filter the requests into 'Approved/Rejected' and the original 'list_pending_request' that filters the requests with 'Under Review' status. By default the requests are ordered in descending order with respect to updated_time with the status - 'Under Review'.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture3.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Picture4.png]]&lt;br /&gt;
&lt;br /&gt;
===Refactoring the code===&lt;br /&gt;
In the account_request_controller_spec.rb file we found a few of typing errors and have corrected and committed as part of this project specification.&lt;br /&gt;
&lt;br /&gt;
===Refactoring Methods===&lt;br /&gt;
The task was to rename the method names which are inappropriate and to rename CRUD like functions such as Request_new to CRUD function names.&lt;br /&gt;
[[File:solutionnew.png]]&lt;br /&gt;
&lt;br /&gt;
===Method Commenting===&lt;br /&gt;
The method named &amp;quot;Foreign&amp;quot; is ambiguous and Method commenting is done describing the function and its parameters.&lt;br /&gt;
[[File:solutionforeign.png]]&lt;br /&gt;
  &lt;br /&gt;
===Adapting Authorization Utilities===  &lt;br /&gt;
The method action_allowed? has been updated to replace the existing code which used non standard code to check user privileges. Instead, the authorization_helper.rb methods that were added as part of project E1915 has been adapted to maintain code readability.&lt;br /&gt;
[[File:action_allowed.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Reverse Chronology and Pagination===&lt;br /&gt;
The initial query receives all the requests from the database containing AccountRequest table without any form of order. This query that is being passed the list of requests has been modified in order to receive list in descending order of timestamp for updated_at field to show the recently changed requests at the top of list. &lt;br /&gt;
The gem 'will_paginate' is used to access pagination features in pending request page in order to display only specific number of requests at a time for ease of navigation. Using the method &amp;quot;paginate&amp;quot;, the number of results per page can be set. Also the corresponding paginate tab is added in the html page for navigating between pages.&lt;br /&gt;
[[File:list_pending_requested.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Limit Self Introduction===&lt;br /&gt;
The list contains a field called &amp;quot;Self Introduction&amp;quot; in which the user writes a short description about themselves. This field can sometimes be large depending on how new requesting users modify it. To keep the view standardized, a limiter has been added to keep the display intact and expand/collapse the column on clicking it. For this we added a jquery plugin in layouts/application.html.erb&lt;br /&gt;
 - &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://www.viralpatel.net/demo/jquery/jquery.shorten.1.0.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
And the views/account_request/list_pending_requested.html.erb and views/account_request/list_pending_requested_finalized.html.erb are modified as well.&lt;br /&gt;
[[File:expand_collapse.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Result'''==&lt;br /&gt;
&lt;br /&gt;
===How the UI was initially===&lt;br /&gt;
&lt;br /&gt;
[[File:Picture9_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
===Our Improvement===&lt;br /&gt;
&lt;br /&gt;
We can see that we have two tabs named Current and History and in Current we can see all the requests which are in &amp;quot;Under Review&amp;quot; status and which needs to be either Approved or Rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture6_E2056.png]]&lt;br /&gt;
[[File:Picture7_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the check boxes which needs to be approved can be selected at once and get approved after clicking the approve button.&lt;br /&gt;
&lt;br /&gt;
[[File:imp1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the files which got approved are displayed above and gets moved to History tab. Same happens with Rejecting requests.&lt;br /&gt;
&lt;br /&gt;
[[File:imp2.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
In the history tab, All the files which got approved are added to the previous requests which got approved or rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:imp3.png]]&lt;br /&gt;
&lt;br /&gt;
In the requests table the column Self Introduction has a &amp;quot;more&amp;quot; link that lets the user expand the column to view overall content inside it and a &amp;quot;less&amp;quot; to collapse it back to original.&lt;br /&gt;
 &lt;br /&gt;
[[File:imp4.png]]&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135605</id>
		<title>CSC/ECE 517 Fall 2020 - E2056 Account Request Controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2056_Account_Request_Controller.rb&amp;diff=135605"/>
		<updated>2020-10-19T23:36:02Z</updated>

		<summary type="html">&lt;p&gt;Nkashya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of E2056.&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
Prospective users are allowed to request Expertiza accounts over the web.  When they are requested, the super-admin receives an email, and can go and approve or reject the request.  The requester is then emailed as to whether the account has been approved, and if so, receives login credentials.&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
* Sumitosh Pal (spal3)&lt;br /&gt;
* Mounika Bachu (mbachu)&lt;br /&gt;
* Nischal Badarinath Kashyap (nkashya)&lt;br /&gt;
&lt;br /&gt;
=='''Problem Statement'''==&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
The implementation is tedious to use, since all account requests since the beginning of time appear on the request page, and the super-admin needs to scroll to the bottom to find the current request. The requests can be approved/rejected only one at a time due to form design which can be improved. Also, the method names are quite nonstandard, when a lot of the methods have standard CRUD functionality.&lt;br /&gt;
&lt;br /&gt;
The steps to reach the Pending Account Request Page is as follows:&lt;br /&gt;
&lt;br /&gt;
1. Log in as an admin or superadmin.&lt;br /&gt;
 * User Name: super_administrator2&lt;br /&gt;
 * Password: password &lt;br /&gt;
&lt;br /&gt;
2. Select Administration-&amp;gt;show, which will bring up a list of features.&lt;br /&gt;
&lt;br /&gt;
3. Click on “Pending Requests” from among the list of features to open the page containing requests from instructor/students.&lt;br /&gt;
&lt;br /&gt;
The admin or super admin can see a list of requests made by students and instructor in chronological order which means that the recent requests are at the bottom of the page. This makes the process cumbersome because any operation on newly created requests would be at the bottom of the page. Also requests can be handled only one at a time due to radio button forms format. Moreover, the code has places that are inconsistent with DRY principles and require some refactoring to make them more standardized.&lt;br /&gt;
&lt;br /&gt;
===Improvements for code readability===&lt;br /&gt;
1. Use authorization utilities from helper modules in action_allowed? to maintain code consistency.&lt;br /&gt;
&lt;br /&gt;
2. Commenting on the method foreign to explain the purpose of this method.&lt;br /&gt;
&lt;br /&gt;
3. Refactoring methods such as request_new and make the method more CRUD like.&lt;br /&gt;
&lt;br /&gt;
4. Commenting on sections in create_requested_user_record which is a fairly long method, and includes several steps for creation of users which are not transparent.&lt;br /&gt;
&lt;br /&gt;
===Improvements for UI===&lt;br /&gt;
1. Split the page into two components - a. Current(by default)  b. History(Processed requests)&lt;br /&gt;
 - Current: Displays only pending requests and in Last In First order.&lt;br /&gt;
 - History: Displays all requests other than pending which are accepted or rejected by the admin. &lt;br /&gt;
&lt;br /&gt;
2. Collapse all self introductions in requests to display them in one line and expand them on click for easier interaction. &lt;br /&gt;
&lt;br /&gt;
3. Paginate the list to display only 10 results per page.&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan'''==&lt;br /&gt;
There is an existing rspec file corresponding to the account_request_controller. The changes made in code involve renaming a lot of existing variables and adding a lot of comments for methods, so most of the existing tests are modified instead of creating new ones.&lt;br /&gt;
&lt;br /&gt;
===Manual Testing===&lt;br /&gt;
1. Beside &amp;quot;Home&amp;quot;, click &amp;quot;Administration&amp;quot;, then click &amp;quot;Show&amp;quot; and in Show click &amp;quot;Pending Requests&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. Two tabs named Current and History are present. &lt;br /&gt;
&lt;br /&gt;
3. Click on tab named &amp;quot;Current&amp;quot;. It displays all the requests which are &amp;quot;Under Review&amp;quot; status and needs to be approved or rejected.&lt;br /&gt;
&lt;br /&gt;
4. A checkbox is present right beside every request and you can select either all the requests which need to be accepted or all the requests which need to be rejected and  click on &amp;quot;accept&amp;quot; or &amp;quot;reject&amp;quot; button. When you click on &amp;quot;Accept&amp;quot; button, all the requests selected will be accepted and will be moved from Current tab to History tab. Chicking &amp;quot;Reject&amp;quot; button, rejects all the requests selected and will move in a similar fashion.&lt;br /&gt;
&lt;br /&gt;
5. Select tab named &amp;quot;History&amp;quot;. It displays all the requests which are &amp;quot;Approved&amp;quot; or &amp;quot;Rejected&amp;quot; in reverse chronological order.&lt;br /&gt;
&lt;br /&gt;
===RSpec Test===&lt;br /&gt;
&lt;br /&gt;
In spec/controllers/account_request_controller_spec.rb we modified 6 test cases&lt;br /&gt;
&lt;br /&gt;
MODIFIED &lt;br /&gt;
 * input selection is nil&lt;br /&gt;
 * input status is Approved&lt;br /&gt;
 * input status is Approved but save fails&lt;br /&gt;
 * input status is Rejected&lt;br /&gt;
 * input status is Rejected but save fails &lt;br /&gt;
 * create a new page for request&lt;br /&gt;
&lt;br /&gt;
ADDED&lt;br /&gt;
 * list_pending_requested_finalized .&lt;br /&gt;
&lt;br /&gt;
1) According to the modification of each problem, we write test separately to test whether its function is realized or not.&lt;br /&gt;
&lt;br /&gt;
First, we modified method named &amp;quot;request_new&amp;quot; to &amp;quot;new&amp;quot; which creates a new request.&lt;br /&gt;
&lt;br /&gt;
  # test case to create a new page for requests&lt;br /&gt;
  context &amp;quot;#new&amp;quot; do&lt;br /&gt;
    it '1' do&lt;br /&gt;
      allow(Role).to receive(:find_by).with(name: 'instructor').and_return('instructor')&lt;br /&gt;
      params = {role: 'instructor'}&lt;br /&gt;
      post :new, params&lt;br /&gt;
      expect(response).to render_template(:new)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
2) list_pending_requested_finalized is clicked&lt;br /&gt;
  # context &amp;quot;#list_pending_requested_finalized&amp;quot; do&lt;br /&gt;
    it 'test list_pending_requested_finalized view' do&lt;br /&gt;
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
      get :list_pending_requested_finalized&lt;br /&gt;
      expect(response).to render_template(:list_pending_requested_finalized)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
3) Modified the existing check with the new params.&lt;br /&gt;
[[File:testing_spec_approved.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:testing_spec_approved3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Solution'''==&lt;br /&gt;
&lt;br /&gt;
===Create User Requested Record===&lt;br /&gt;
The function is designed to receive the information of the User who seeks the permission to access the website. The information is saved into the AccountRequest Model. The task was to split the function into different methods due to it being too verbose or write comments into the code. We chose to add comments into the function as splitting up would be inefficient.&lt;br /&gt;
&lt;br /&gt;
===Splitting up the Views===&lt;br /&gt;
The task was to design a logic to the existing code such that the administrator would be able to see requests in two different views as in 'Under Review' or 'Approved/Rejected'. An additional function 'list_pending_request_finalized' was added that would filter the requests into 'Approved/Rejected' and the original 'list_pending_request' that filters the requests with 'Under Review' status. By default the requests are ordered in descending order with respect to updated_time with the status - 'Under Review'.&lt;br /&gt;
&lt;br /&gt;
===Refactoring the code===&lt;br /&gt;
In the account_request_controller_spec.rb file we found a few of typing errors and have corrected and committed as part of this project specification.&lt;br /&gt;
&lt;br /&gt;
===Refactoring Methods===&lt;br /&gt;
The task was to rename the method names which are inappropriate and to rename CRUD like functions such as Request_new to CRUD function names.&lt;br /&gt;
[[File:solutionnew.png]]&lt;br /&gt;
&lt;br /&gt;
===Method Commenting===&lt;br /&gt;
The method named &amp;quot;Foreign&amp;quot; is ambiguous and Method commenting is done describing the function and its parameters.&lt;br /&gt;
[[File:solutionforeign.png]]&lt;br /&gt;
  &lt;br /&gt;
===Adapting Authorization Utilities===  &lt;br /&gt;
The method action_allowed? has been updated to replace the existing code which used non standard code to check user privileges. Instead, the authorization_helper.rb methods that were added as part of project E1915 has been adapted to maintain code readability.&lt;br /&gt;
[[File:action_allowed.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Reverse Chronology and Pagination===&lt;br /&gt;
The initial query receives all the requests from the database containing AccountRequest table without any form of order. This query that is being passed the list of requests has been modified in order to receive list in descending order of timestamp for updated_at field to show the recently changed requests at the top of list. &lt;br /&gt;
The gem 'will_paginate' is used to access pagination features in pending request page in order to display only specific number of requests at a time for ease of navigation. Using the method &amp;quot;paginate&amp;quot;, the number of results per page can be set. Also the corresponding paginate tab is added in the html page for navigating between pages.&lt;br /&gt;
[[File:list_pending_requested.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Limit Self Introduction===&lt;br /&gt;
The list contains a field called &amp;quot;Self Introduction&amp;quot; in which the user writes a short description about themselves. This field can sometimes be large depending on how new requesting users modify it. To keep the view standardized, a limiter has been added to keep the display intact and expand/collapse the column on clicking it. For this we added a jquery plugin in layouts/application.html.erb&lt;br /&gt;
 - &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://www.viralpatel.net/demo/jquery/jquery.shorten.1.0.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
And the views/account_request/list_pending_requested.html.erb and views/account_request/list_pending_requested_finalized.html.erb are modified as well.&lt;br /&gt;
[[File:expand_collapse.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Result'''==&lt;br /&gt;
&lt;br /&gt;
===How the UI was initially===&lt;br /&gt;
&lt;br /&gt;
[[File:Picture9_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
===Our Improvement===&lt;br /&gt;
&lt;br /&gt;
We can see that we have two tabs named Current and History and in Current we can see all the requests which are in &amp;quot;Under Review&amp;quot; status and which needs to be either Approved or Rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:Picture6_E2056.png]]&lt;br /&gt;
[[File:Picture7_E2056.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the check boxes which needs to be approved can be selected at once and get approved after clicking the approve button.&lt;br /&gt;
&lt;br /&gt;
[[File:imp1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the files which got approved are displayed above and gets moved to History tab. Same happens with Rejecting requests.&lt;br /&gt;
&lt;br /&gt;
[[File:imp2.png]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
In the history tab, All the files which got approved are added to the previous requests which got approved or rejected. It only displays 10 requests on each page for readability.&lt;br /&gt;
&lt;br /&gt;
[[File:imp3.png]]&lt;br /&gt;
&lt;br /&gt;
In the requests table the column Self Introduction has a &amp;quot;more&amp;quot; link that lets the user expand the column to view overall content inside it and a &amp;quot;less&amp;quot; to collapse it back to original.&lt;br /&gt;
 &lt;br /&gt;
[[File:imp4.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Code Snippets'''==&lt;br /&gt;
&lt;br /&gt;
===Create User Requested Record===&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
===Splitting up the Views===&lt;br /&gt;
&lt;br /&gt;
[[File:Picture3.png]]&lt;br /&gt;
[[File:Picture4.png]]&lt;br /&gt;
&lt;br /&gt;
===RSpec Test Changes===&lt;br /&gt;
[[File:Picture5.png]]&lt;/div&gt;</summary>
		<author><name>Nkashya</name></author>
	</entry>
</feed>