<?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=Jjohn3</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=Jjohn3"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Jjohn3"/>
	<updated>2026-05-10T03:16:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113549</id>
		<title>CSC/ECE 517 Fall 2017/E1796. Unify Create Assignment and Edit Assignment pages</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113549"/>
		<updated>2017-11-15T04:02:18Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: /* Approach */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;E1796. Unify Create Assignment and Edit Assignment pages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement:==&lt;br /&gt;
In the Expertiza portal presently when an instructor wants to create a new assignment then as he selects a new assignment option only a few metrics are asked for while for mentioning the other metrics the professor needs to edit assignment and then under that he is shown the options to edit all the other metrics.  Also, when we press the save button while creating or editing an assignment it goes to HTML form request, instead it should be changed to AJAX request so that the page does not need to get refreshed every time user saves the changes. Few other minor issues are validating the user entries and fixing tooltips so that they are supported across all the browsers.( Chrome, Safari, Firefox etc.)&lt;br /&gt;
&lt;br /&gt;
==Scope of this Project: ==&lt;br /&gt;
Specific Improvements to assignment creation by navigating the user for creating a new assignment to edit assignment page(view/assignment/edit_assignment). &lt;br /&gt;
&amp;lt;br/&amp;gt;Making sure the edit assignment has blank fields in case of new assignment and saved fields in case of editing. &lt;br /&gt;
&amp;lt;br/&amp;gt;When an Instructor creates a new assignment, he should be able to see a table to set DueDates, Review Strategy options and Rubrics associated with the assignments. These options are currently available to the instructor while editing an assignment. We will be adding options to be set during creation of new assignment. Fields to add suggested topics will be excluded for new assignment creation.&lt;br /&gt;
&amp;lt;br/&amp;gt;Fixes to tooltips so that it is supported across all the browsers&lt;br /&gt;
&amp;lt;br/&amp;gt;Change the save button to AJAX request instead of HTML form submission so that the page doesn’t need to get refreshed every time the user save the changes.&lt;br /&gt;
&lt;br /&gt;
==Use Case Diagram:==&lt;br /&gt;
&lt;br /&gt;
[[File:Assignment_use_case.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Flow:==&lt;br /&gt;
This page is displayed in the present system when a professor wants to create a new assignment as we can see there are only very few metrics on this page which are being displayed. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While under Edit assignment the professor can now mention all the various metrics regarding the assignment on this page. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Approach==&lt;br /&gt;
New assignment creation form will render forms to set Due Dates, Review Strategy and Rubrics as a table. Currently application ID is required to edit these options for an application. We will modify application/views and application controller to support adding these options while creation without application ID without breaking existing edit functionality.&lt;br /&gt;
&lt;br /&gt;
In the present implementation the save button is handled by JQuery but only until a point where necessary attribute checks are done. Now, we need to prevent the page from reloading which can be done by mentioning a remote value as true in the form tag for the edit assignment page.&lt;br /&gt;
 &lt;br /&gt;
In the improved view of New Assignment instructor will be able to specify details under four tabs as shown in the below screenshots&lt;br /&gt;
[[Image:New_View_New_Assignment_General.png]]&lt;br /&gt;
&lt;br /&gt;
In the General tab the instructor is now able to see all the options from the old view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:New_View_New_Assignment_Assign_Rubrics.png]]&lt;br /&gt;
&lt;br /&gt;
In the improved view, in addition to supporting the General tab, now there are new tabs like &amp;quot;Rubrics&amp;quot;.&lt;br /&gt;
This tab allows the instructor to select the various rubrics for the new assignment. This page also allows the setting of different rubrics for each round of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:New_View_New_Assignment_Assign_Review_Strategy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the improved view, there will be an additional new tab titled &amp;quot;Review Strategy&amp;quot;.&lt;br /&gt;
This tab allows the instructor to set the various policies for review of the new assignment. This page also allows assigning manual review strategies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:New_View_New_Assignment_Assign_DueDates.png]]&lt;br /&gt;
&lt;br /&gt;
The new view also renders tab a titled &amp;quot;Due Dates&amp;quot; where the instructor can select the deadlines for various rounds of the selected rubrics. This tab also allows the instructor to select the late penalty policy&lt;br /&gt;
The instructor can also choose to make a new late policy instead of selecting an existing policy created by the same instructor.&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern==&lt;br /&gt;
1.MVC – 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;
&amp;lt;br/&amp;gt;2.Dry Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication.  Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
=='''Files to be Modified==&lt;br /&gt;
view/assignment/edit/.*&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/new.html.erb&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/*&lt;br /&gt;
&amp;lt;br/&amp;gt;controller/assignment_controller.rb&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan==&lt;br /&gt;
Manual and automated testing to be done for below cases. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  clicking on Manage-&amp;gt;Assignments should display all created assignments with correct directory, creation date, updation date, instructor id, and actions. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;actions of an assignment should successfully redirect to action page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public assignment,will redirected to &amp;quot;Create New Public Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new private assignment,will redirected to &amp;quot;Create New Private Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public/private assignment, &amp;quot;Create New Public/Private Assignment&amp;quot; should render a table with tabs &amp;quot;General&amp;quot;,  &amp;quot;Rubrics, &amp;quot;Review Strategy&amp;quot;,  &amp;quot;Due Dates&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot; page,  the tab should display table to select Questionnaire,  menu type, display style, weight and notification limit.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select review type, author feedback type, and Teammate review option from the drop down from  &amp;quot;Rubrics&amp;quot; tab.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Review Strategy from drop down on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, set number of reviews done by each student on  &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set minimum number of reviews done for each submission on &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set both calibrated and uncalibrated artifacts  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Anonymous Review option on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select allow self  review  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set due dates  on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of submissions allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of reviews allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of teammate review allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  after updating the fields on all tabs and clicking on save should create an assignment form in database.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, after saving the new assignment, redirect to edit page to update Signup topics. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an instructor, save should not reload the page while creating a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when instructor creates a empty template for assignment form.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when name of the assignment is not unique.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when late policy is not created for instructor, and instructor tries to create a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt;All Users should be able to see tooltip of respective actions on all Browsers.&lt;br /&gt;
&amp;lt;br/&amp;gt; As an instructor, delete an assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt; Form submission validates the attributes of all associated models.&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113535</id>
		<title>CSC/ECE 517 Fall 2017/E1796. Unify Create Assignment and Edit Assignment pages</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113535"/>
		<updated>2017-11-15T03:55:43Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: /* Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;E1796. Unify Create Assignment and Edit Assignment pages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction===&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. It is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza enables the instructor to create new and customize existing assignments. It also enables the instructor to create a list of topics the students can sign up for as part of a project. Students can form teams in Expertiza to work on various projects and assignments. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement:==&lt;br /&gt;
In the Expertiza portal presently when an instructor wants to create a new assignment then as he selects a new assignment option only a few metrics are asked for while for mentioning the other metrics the professor needs to edit assignment and then under that he is shown the options to edit all the other metrics.  Also, when we press the save button while creating or editing an assignment it goes to HTML form request, instead it should be changed to AJAX request so that the page does not need to get refreshed every time user saves the changes. Few other minor issues are validating the user entries and fixing tooltips so that they are supported across all the browsers.( Chrome, Safari, Firefox etc.)&lt;br /&gt;
&lt;br /&gt;
==Scope of this Project: ==&lt;br /&gt;
Specific Improvements to assignment creation by navigating the user for creating a new assignment to edit assignment page(view/assignment/edit_assignment). &lt;br /&gt;
&amp;lt;br/&amp;gt;Making sure the edit assignment has blank fields in case of new assignment and saved fields in case of editing. &lt;br /&gt;
&amp;lt;br/&amp;gt;When an Instructor creates a new assignment, he should be able to see a table to set DueDates, Review Strategy options and Rubrics associated with the assignments. These options are currently available to the instructor while editing an assignment. We will be adding options to be set during creation of new assignment. Fields to add suggested topics will be excluded for new assignment creation.&lt;br /&gt;
&amp;lt;br/&amp;gt;Fixes to tooltips so that it is supported across all the browsers&lt;br /&gt;
&amp;lt;br/&amp;gt;Change the save button to AJAX request instead of HTML form submission so that the page doesn’t need to get refreshed every time the user save the changes.&lt;br /&gt;
&lt;br /&gt;
==Use Case Diagram:==&lt;br /&gt;
&lt;br /&gt;
[[File:Assignment_use_case.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Flow:==&lt;br /&gt;
This page is displayed in the present system when a professor wants to create a new assignment as we can see there are only very few metrics on this page which are being displayed. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While under Edit assignment the professor can now mention all the various metrics regarding the assignment on this page. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Approach==&lt;br /&gt;
New assignment creation form will render forms to set Due Dates, Review Strategy and Rubrics. Currently application ID is required to edit these options for an application. We will modify application/views and application controller to support adding these options while creation without application ID without breaking existing edit functionality.&lt;br /&gt;
 &lt;br /&gt;
In the improved view of New Assignment instructor will be able to specify details under four tabs as shown in the below screenshots&lt;br /&gt;
[[Image:New_View_New_Assignment_General.png]]&lt;br /&gt;
&lt;br /&gt;
In the General tab the instructor is now able to see all the options from the old view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:New_View_New_Assignment_Assign_Rubrics.png]]&lt;br /&gt;
&lt;br /&gt;
In the improved view, in addition to supporting the General tab, now there are new tabs like &amp;quot;Rubrics&amp;quot;.&lt;br /&gt;
This tab allows the instructor to select the various rubrics for the new assignment. This page also allows the setting of different rubrics for each round of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:New_View_New_Assignment_Assign_Review_Strategy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the improved view, there will be an additional new tab titled &amp;quot;Review Strategy&amp;quot;.&lt;br /&gt;
This tab allows the instructor to set the various policies for review of the new assignment. This page also allows assigning manual review strategies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:New_View_New_Assignment_Assign_DueDates.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern==&lt;br /&gt;
1.MVC – 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;
&amp;lt;br/&amp;gt;2.Dry Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication.  Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
=='''Files to be Modified==&lt;br /&gt;
view/assignment/edit/.*&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/new.html.erb&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/*&lt;br /&gt;
&amp;lt;br/&amp;gt;controller/assignment_controller.rb&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan==&lt;br /&gt;
Manual and automated testing to be done for below cases. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  clicking on Manage-&amp;gt;Assignments should display all created assignments with correct directory, creation date, updation date, instructor id, and actions. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;actions of an assignment should successfully redirect to action page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public assignment,will redirected to &amp;quot;Create New Public Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new private assignment,will redirected to &amp;quot;Create New Private Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public/private assignment, &amp;quot;Create New Public/Private Assignment&amp;quot; should render a table with tabs &amp;quot;General&amp;quot;,  &amp;quot;Rubrics, &amp;quot;Review Strategy&amp;quot;,  &amp;quot;Due Dates&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot; page,  the tab should display table to select Questionnaire,  menu type, display style, weight and notification limit.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select review type, author feedback type, and Teammate review option from the drop down from  &amp;quot;Rubrics&amp;quot; tab.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Review Strategy from drop down on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, set number of reviews done by each student on  &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set minimum number of reviews done for each submission on &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set both calibrated and uncalibrated artifacts  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Anonymous Review option on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select allow self  review  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set due dates  on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of submissions allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of reviews allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of teammate review allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  after updating the fields on all tabs and clicking on save should create an assignment form in database.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, after saving the new assignment, redirect to edit page to update Signup topics. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an instructor, save should not reload the page while creating a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when instructor creates a empty template for assignment form.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when name of the assignment is not unique.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when late policy is not created for instructor, and instructor tries to create a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt;All Users should be able to see tooltip of respective actions on all Browsers.&lt;br /&gt;
&amp;lt;br/&amp;gt; As an instructor, delete an assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt; Form submission validates the attributes of all associated models.&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113531</id>
		<title>File:New View New Assignment Assign DueDates.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113531"/>
		<updated>2017-11-15T03:54:58Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign DueDates.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_DueDates&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113523</id>
		<title>File:New View New Assignment Assign DueDates.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113523"/>
		<updated>2017-11-15T03:53:51Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign DueDates.png&amp;amp;quot;: New_View_New_Assignment_Assign_DueDates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_DueDates&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113521</id>
		<title>File:New View New Assignment Assign DueDates.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113521"/>
		<updated>2017-11-15T03:52:50Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign DueDates.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_DueDates&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113516</id>
		<title>File:New View New Assignment Assign DueDates.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113516"/>
		<updated>2017-11-15T03:51:30Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign DueDates.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_DueDates&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Review_Strategy.png&amp;diff=113512</id>
		<title>File:New View New Assignment Assign Review Strategy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Review_Strategy.png&amp;diff=113512"/>
		<updated>2017-11-15T03:48:10Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign Review Strategy.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_Review_Strategy&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Rubrics.png&amp;diff=113510</id>
		<title>File:New View New Assignment Assign Rubrics.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Rubrics.png&amp;diff=113510"/>
		<updated>2017-11-15T03:47:37Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign Rubrics.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_Rubrics&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Review_Strategy.png&amp;diff=113503</id>
		<title>File:New View New Assignment Assign Review Strategy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Review_Strategy.png&amp;diff=113503"/>
		<updated>2017-11-15T03:41:52Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign Review Strategy.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_Review_Strategy&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Rubrics.png&amp;diff=113502</id>
		<title>File:New View New Assignment Assign Rubrics.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Rubrics.png&amp;diff=113502"/>
		<updated>2017-11-15T03:41:23Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment Assign Rubrics.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_Rubrics&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113499</id>
		<title>CSC/ECE 517 Fall 2017/E1796. Unify Create Assignment and Edit Assignment pages</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113499"/>
		<updated>2017-11-15T03:36:06Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;E1796. Unify Create Assignment and Edit Assignment pages&lt;br /&gt;
&lt;br /&gt;
The current new assignment UI is a Rails based From, while the Assignment Edit Form is a multi level JavasScript based form (view/assignment/edit/.*) that consists of multiple inputs  and user interactions. When an instructor creates a new assignment, there are only a limited parameters that he can set in the creation page, then (s)he needs to edit the assignment to define the rest of the parameters. This is confusing and needs to be unified. One solution could be ditching the new assignment form (views/assignment/new.html.erb)&lt;br /&gt;
===Introduction===&lt;br /&gt;
==Problem Statement:==&lt;br /&gt;
In the Expertiza portal presently when an instructor wants to create a new assignment then as he selects a new assignment option only a few metrics are asked for while for mentioning the other metrics the professor needs to edit assignment and then under that he is shown the options to edit all the other metrics.  Also, when we press the save button while creating or editing an assignment it goes to HTML form request, instead it should be changed to AJAX request so that the page does not need to get refreshed every time user saves the changes. Few other minor issues are validating the user entries and fixing tooltips so that they are supported across all the browsers.( Chrome, Safari, Firefox etc.)&lt;br /&gt;
&lt;br /&gt;
==Scope of this Project: ==&lt;br /&gt;
Specific Improvements to assignment creation by navigating the user for creating a new assignment to edit assignment page(view/assignment/edit_assignment). &lt;br /&gt;
&amp;lt;br/&amp;gt;Making sure the edit assignment has blank fields in case of new assignment and saved fields in case of editing. &lt;br /&gt;
&amp;lt;br/&amp;gt;When an Instructor creates a new assignment, he should be able to see a table to set DueDates, Review Strategy options and Rubrics associated with the assignments. These options are currently available to the instructor while editing an assignment. We will be adding options to be set during creation of new assignment. Fields to add suggested topics will be excluded for new assignment creation.&lt;br /&gt;
&amp;lt;br/&amp;gt;Fixes to tooltips so that it is supported across all the browsers&lt;br /&gt;
&amp;lt;br/&amp;gt;Change the save button to AJAX request instead of HTML form submission so that the page doesn’t need to get refreshed every time the user save the changes.&lt;br /&gt;
&lt;br /&gt;
==Use Case Diagram:==&lt;br /&gt;
&lt;br /&gt;
[[File:Assignment_use_case.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Flow:==&lt;br /&gt;
This page is displayed in the present system when a professor wants to create a new assignment as we can see there are only very few metrics on this page which are being displayed. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While under Edit assignment the professor can now mention all the various metrics regarding the assignment on this page. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Improvements==&lt;br /&gt;
In the improved view of New Assignment instructor will be able to specify details under four tabs as shown in the below screenshots&lt;br /&gt;
[[Image:New_View_New_Assignment_General.png]]&lt;br /&gt;
&lt;br /&gt;
In the General tab the instructor is now able to see all the options from the old view.&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern==&lt;br /&gt;
1.MVC – 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;
&amp;lt;br/&amp;gt;2.Dry Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication.  Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
=='''Files to be Modified==&lt;br /&gt;
view/assignment/edit/.*&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/new.html.erb&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/*&lt;br /&gt;
&amp;lt;br/&amp;gt;controller/assignment_controller.rb&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan==&lt;br /&gt;
Manual and automated testing to be done for below cases. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  clicking on Manage-&amp;gt;Assignments should display all created assignments with correct directory, creation date, updation date, instructor id, and actions. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;actions of an assignment should successfully redirect to action page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public assignment,will redirected to &amp;quot;Create New Public Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new private assignment,will redirected to &amp;quot;Create New Private Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public/private assignment, &amp;quot;Create New Public/Private Assignment&amp;quot; should render a table with tabs &amp;quot;General&amp;quot;,  &amp;quot;Rubrics, &amp;quot;Review Strategy&amp;quot;,  &amp;quot;Due Dates&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot; page,  the tab should display table to select Questionnaire,  menu type, display style, weight and notification limit.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select review type, author feedback type, and Teammate review option from the drop down from  &amp;quot;Rubrics&amp;quot; tab.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Review Strategy from drop down on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, set number of reviews done by each student on  &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set minimum number of reviews done for each submission on &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set both calibrated and uncalibrated artifacts  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Anonymous Review option on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select allow self  review  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set due dates  on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of submissions allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of reviews allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of teammate review allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  after updating the fields on all tabs and clicking on save should create an assignment form in database.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, after saving the new assignment, redirect to edit page to update Signup topics. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an instructor, save should not reload the page while creating a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when instructor creates a empty template for assignment form.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when name of the assignment is not unique.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when late policy is not created for instructor, and instructor tries to create a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt;All Users should be able to see tooltip of respective actions on all Browsers.&lt;br /&gt;
&amp;lt;br/&amp;gt; As an instructor, delete an assignment.&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_General.png&amp;diff=113495</id>
		<title>File:New View New Assignment General.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_General.png&amp;diff=113495"/>
		<updated>2017-11-15T03:31:22Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: uploaded a new version of &amp;amp;quot;File:New View New Assignment General.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_General&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113487</id>
		<title>CSC/ECE 517 Fall 2017/E1796. Unify Create Assignment and Edit Assignment pages</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=113487"/>
		<updated>2017-11-15T03:27:21Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;E1796. Unify Create Assignment and Edit Assignment pages&lt;br /&gt;
&lt;br /&gt;
The current new assignment UI is a Rails based From, while the Assignment Edit Form is a multi level JavasScript based form (view/assignment/edit/.*) that consists of multiple inputs  and user interactions. When an instructor creates a new assignment, there are only a limited parameters that he can set in the creation page, then (s)he needs to edit the assignment to define the rest of the parameters. This is confusing and needs to be unified. One solution could be ditching the new assignment form (views/assignment/new.html.erb)&lt;br /&gt;
===Introduction===&lt;br /&gt;
==Problem Statement:==&lt;br /&gt;
In the Expertiza portal presently when an instructor wants to create a new assignment then as he selects a new assignment option only a few metrics are asked for while for mentioning the other metrics the professor needs to edit assignment and then under that he is shown the options to edit all the other metrics.  Also, when we press the save button while creating or editing an assignment it goes to HTML form request, instead it should be changed to AJAX request so that the page does not need to get refreshed every time user saves the changes.&lt;br /&gt;
&lt;br /&gt;
==Scope of this Project: ==&lt;br /&gt;
Specific Improvements to assignment creation by navigating the user for creating a new assignment to edit assignment page(view/assignment/edit_assignment). &lt;br /&gt;
Making sure the edit assignment has blank fields in case of new assignment and saved fields in case of editing. &lt;br /&gt;
Fixes to tooltips so that it is supported across all the browsers&lt;br /&gt;
Change the save button to AJAX request instead of HTML form submission so that the page doesn’t need to get refreshed every time the user save the changes.&lt;br /&gt;
&lt;br /&gt;
==Use Case Diagram:==&lt;br /&gt;
&lt;br /&gt;
[[File:Assignment_use_case.png]]&lt;br /&gt;
&lt;br /&gt;
==Current Flow:==&lt;br /&gt;
This page is displayed in the present system when a professor wants to create a new assignment as we can see there are only very few metrics on this page which are being displayed. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While under Edit assignment the professor can now mention all the various metrics regarding the assignment on this page. &lt;br /&gt;
&lt;br /&gt;
[[File:Picture1.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Improvements==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern==&lt;br /&gt;
1.MVC – 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;
&amp;lt;br/&amp;gt;2.Dry Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication.  Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.&lt;br /&gt;
&lt;br /&gt;
=='''Files to be Modified==&lt;br /&gt;
view/assignment/edit/.*&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/new.html.erb&lt;br /&gt;
&amp;lt;br/&amp;gt;views/assignment/*&lt;br /&gt;
&amp;lt;br/&amp;gt;controller/assignment_controller.rb&lt;br /&gt;
&lt;br /&gt;
=='''Test Plan==&lt;br /&gt;
Manual and automated testing to be done for below cases. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  clicking on Manage-&amp;gt;Assignments should display all created assignments with correct directory, creation date, updation date, instructor id, and actions. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;actions of an assignment should successfully redirect to action page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public assignment,will redirected to &amp;quot;Create New Public Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new private assignment,will redirected to &amp;quot;Create New Private Assignment&amp;quot; Page.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on Manage-&amp;gt;Assignments-&amp;gt;new public/private assignment, &amp;quot;Create New Public/Private Assignment&amp;quot; should render a table with tabs &amp;quot;General&amp;quot;,  &amp;quot;Rubrics, &amp;quot;Review Strategy&amp;quot;,  &amp;quot;Due Dates&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, clicking on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot; page,  the tab should display table to select Questionnaire,  menu type, display style, weight and notification limit.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select review type, author feedback type, and Teammate review option from the drop down from  &amp;quot;Rubrics&amp;quot; tab.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Review Strategy from drop down on &amp;quot;Rubrics&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, set number of reviews done by each student on  &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set minimum number of reviews done for each submission on &amp;quot;Review Strategy&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, Set both calibrated and uncalibrated artifacts  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select Anonymous Review option on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, select allow self  review  on &amp;quot;Review Strategy&amp;quot; tab. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set due dates  on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of submissions allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of reviews allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  set number of teammate review allowed on  &amp;quot;Due Date&amp;quot; tab from &amp;quot;Create New Public/Private Assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor,  after updating the fields on all tabs and clicking on save should create an assignment form in database.&lt;br /&gt;
&amp;lt;br/&amp;gt;As an Instructor, after saving the new assignment, redirect to edit page to update Signup topics. &lt;br /&gt;
&amp;lt;br/&amp;gt;As an instructor, save should not reload the page while creating a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when instructor creates a empty template for assignment form.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when name of the assignment is not unique.&lt;br /&gt;
&amp;lt;br/&amp;gt; Test when late policy is not created for instructor, and instructor tries to create a new assignment.&lt;br /&gt;
&amp;lt;br/&amp;gt;All Users should be able to see tooltip of respective actions on all Browsers.&lt;br /&gt;
&amp;lt;br/&amp;gt; As an instructor, delete an assignment.&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113469</id>
		<title>File:New View New Assignment Assign DueDates.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_DueDates.png&amp;diff=113469"/>
		<updated>2017-11-15T03:13:51Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: New_View_New_Assignment_Assign_DueDates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_DueDates&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Review_Strategy.png&amp;diff=113467</id>
		<title>File:New View New Assignment Assign Review Strategy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Review_Strategy.png&amp;diff=113467"/>
		<updated>2017-11-15T03:13:29Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: New_View_New_Assignment_Assign_Review_Strategy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_Review_Strategy&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Rubrics.png&amp;diff=113465</id>
		<title>File:New View New Assignment Assign Rubrics.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_Assign_Rubrics.png&amp;diff=113465"/>
		<updated>2017-11-15T03:12:59Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: New_View_New_Assignment_Assign_Rubrics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_Assign_Rubrics&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_General.png&amp;diff=113464</id>
		<title>File:New View New Assignment General.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View_New_Assignment_General.png&amp;diff=113464"/>
		<updated>2017-11-15T03:12:38Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: New_View_New_Assignment_General&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New_View_New_Assignment_General&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Current_View_New_Assignment.png&amp;diff=113462</id>
		<title>File:Current View New Assignment.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Current_View_New_Assignment.png&amp;diff=113462"/>
		<updated>2017-11-15T03:11:58Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: Current_View_New_Assignment&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Current_View_New_Assignment&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017&amp;diff=112507</id>
		<title>CSC/ECE 517 Fall 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017&amp;diff=112507"/>
		<updated>2017-11-08T01:17:50Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Design Project Documentation'''&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A2 Lightweight Badging System]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A8. Use a profiler to identify the problems / pages that take some time to load &amp;amp; fix them]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1793. Help students find teams to join]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A0 Team-based reviewing]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1793. Help students find teams to join_Team1964]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1791. Track the time that students look at the other submissions - logging improvement]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1799 Improve self-review Link peer review &amp;amp; self-review to derive grades]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1797_Timestamps_for_students_submissions]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E17A1|CSC/ECE_517_Fall_2017/E17A1 - Let experts as well as students do reviews]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/M1753_OffscreenCanvas]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/M1754_Mutation_Testing]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1794. Student-generated questions added to rubric]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A6. Fix account creation over web to work reasonably]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1792 OSS Visualizations for instructors]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment_Team34]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A7_Allow_Reviewers_to_bid_on_what_to_review]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E17A9 Lazy loading (infinite scroll) for assignments courses questionnaires and user lists with Jscroll]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1796. Unify Create Assignment and Edit Assignment pages]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Writing Assignment 2'''&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1779. Fix teammate advertisements and requests to join a team]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1773 Investigate and Fix Expertiza Production Version Runtime Exceptions.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1774 Metareview fixes and improvements.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1788 OSS project Maroon Heatmap fixes]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1781 Topic Management]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1745_Refactor_response_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1752 Refactor assignments controller]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1776_Enhance_Imports]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1756 TLD Refactor response.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1772_Refactor reputation_web_service_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/M1753_OffscreenCanvas API]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/M1754_Mutation Testing on Servo]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1753 OSS project bidding tests]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1766_Test team functionality]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1767 Improve imports]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1786_OSS project Juniper Bookmark Enhancements]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1787_OSS project Bronze Score calculations]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1763 Fix Staggered-Deadline Assignments]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1769_Refactor assignment_form.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1754_Feature_test_of_rubric_advice]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1782 OSS Project Red Assignment Directories]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1748 Add past-due assignments to task list]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1761 Test First Development Refactor assignment.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1780_OSS_Project_Teal_Email_Notification_Enhancements]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1762 Test various kinds of response-map hierarchies]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1759 ]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1749_Test First Development Refactor questionnaire_controller.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1777 Coherent specification of review requirements.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1771_Refactor_team.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1784 Fix mass assignments reported by Brakeman.rb]]&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=112506</id>
		<title>CSC/ECE 517 Fall 2017/E1796. Unify Create Assignment and Edit Assignment pages</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1796._Unify_Create_Assignment_and_Edit_Assignment_pages&amp;diff=112506"/>
		<updated>2017-11-08T01:17:28Z</updated>

		<summary type="html">&lt;p&gt;Jjohn3: Created page with &amp;quot;E1796. Unify Create Assignment and Edit Assignment pages  The current new assignment UI is a Rails based From, while the Assignment Edit Form is a multi level JavasScript based f...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;E1796. Unify Create Assignment and Edit Assignment pages&lt;br /&gt;
&lt;br /&gt;
The current new assignment UI is a Rails based From, while the Assignment Edit Form is a multi level JavasScript based form (view/assignment/edit/.*) that consists of multiple inputs  and user interactions. When an instructor creates a new assignment, there are only a limited parameters that he can set in the creation page, then (s)he needs to edit the assignment to define the rest of the parameters. This is confusing and needs to be unified. One solution could be ditching the new assignment form (views/assignment/new.html.erb)&lt;/div&gt;</summary>
		<author><name>Jjohn3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110611</id>
		<title>CSC/ECE 517 Fall 2017/E1765 Rubrics.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1765_Rubrics.rb&amp;diff=110611"/>
		<updated>2017-10-28T02:28:35Z</updated>

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

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