<?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=Amehta8</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=Amehta8"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Amehta8"/>
	<updated>2026-07-21T18:14:56Z</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/E1798_Role-based_Reviewing&amp;diff=113612</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=113612"/>
		<updated>2017-11-15T16:28:05Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. Currently, there is no functionality that enables this. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page. In case the assignment does not allow multiple team members to take on the same duty, the student cannot pick a duty that has been picked by another member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - Name of the duty&amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
&lt;br /&gt;
New function 'save_duty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
&lt;br /&gt;
New functions 'assign_duty' and 'select_duty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
'''The new changes will be as follows in the UI - '''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The team would add the duties as - &lt;br /&gt;
&lt;br /&gt;
[[File:Duty_team.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Instructor would mark the assignment where team members will have duties or not - &lt;br /&gt;
&lt;br /&gt;
[[File:Assignmnet_duties.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Rubrics will added based on the role and a new text field will be added to do that - &lt;br /&gt;
&lt;br /&gt;
[[File:Captureapo.png]]&lt;br /&gt;
&lt;br /&gt;
== Use Case Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Actors''' - Instructor and Student&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. Instructor'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Preconditions - &lt;br /&gt;
* Assume assignment to be a role-based assignment&amp;lt;br&amp;gt;&lt;br /&gt;
* Reviewing rubrics for different duties have been created through the 'Questionnaires' tab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sequence of steps - &lt;br /&gt;
* Log into Expertiza&amp;lt;br&amp;gt;&lt;br /&gt;
* While creating an assignment, add duties that team members can take on through the 'Review Strategies' tab&amp;lt;br&amp;gt; &lt;br /&gt;
* On the 'Rubrics' tab, choose the pre-created reviewing rubrics for different duties&amp;lt;br&amp;gt;&lt;br /&gt;
* Finish creating the assignment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Student'''&lt;br /&gt;
&lt;br /&gt;
Preconditions - &lt;br /&gt;
* Student is already a part of a team&lt;br /&gt;
* The assignment that the student is working on is a role-based assignment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sequence of steps - &lt;br /&gt;
* Log into Expertiza&amp;lt;br&amp;gt;&lt;br /&gt;
* On 'Your Team' page, choose a duty to take on from a list of available duties (If multiple_duty is not enabled for a particular duty, the duty will be assigned to first member who chooses it, and will be disabled for the others)&amp;lt;br&amp;gt;&lt;br /&gt;
* On 'Your Team' page, click 'Review' link for a particular team member&amp;lt;br&amp;gt;&lt;br /&gt;
* Review the team mate based on the rubric loaded for his duty&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Class Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:ClassDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
* The table 'duties' will contain the name of the duty and whether multiple team members can choose the same duty.&lt;br /&gt;
* Assignments will either be role-based or not, depending on the value of the duty flag.&amp;lt;br&amp;gt;&lt;br /&gt;
* The 'save_duty' and 'edit' functions in the AssignmentsController will allow saving the duties assigned to an assignment and saving whether the assignment is role-based.&amp;lt;br&amp;gt;&lt;br /&gt;
* The 'assign_duty' and 'select_duty' functions in StudentTeamsController be defined so that a team member can select a duty and save it.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
* For the instructor&lt;br /&gt;
&lt;br /&gt;
1. While creating a new assignment, new checkbox will be available to make it a role-based assignment&lt;br /&gt;
&lt;br /&gt;
2. If the checkbox is checked then the instructor will be able to add roles which will be applicable for the assignment&lt;br /&gt;
&lt;br /&gt;
3. A role can be repeated among team members based on the role stored in the database.&lt;br /&gt;
&lt;br /&gt;
4. New rubrics for a particular role can be added under Questionnaires tab for specific review questions based on role of a team member &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* For the student in team&lt;br /&gt;
&lt;br /&gt;
1. Once a student is in a team for the assignment with roles, they can pick up roles.&lt;br /&gt;
&lt;br /&gt;
2. If a role does not allow multiple members, it will not be visible to other members to choose if chosen already.&lt;br /&gt;
&lt;br /&gt;
2.1. A new view will open for selecting roles which are available.&lt;br /&gt;
&lt;br /&gt;
2.2. The student can select an available role.&lt;br /&gt;
&lt;br /&gt;
2.3. Once a role is selected by a member, it will not be visible for selection.&lt;br /&gt;
&lt;br /&gt;
3. If a role allows multiple selection, multiple team members will be able to select a role.&lt;br /&gt;
&lt;br /&gt;
4. When a peer review begins, the rubrics will be related to that particular role.&lt;br /&gt;
&lt;br /&gt;
5. The members will review each member based on the role the member played for the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For assignments without roles, the peer reviews will be as per the current functionality with generalized review rubrics for all and not role based.&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Captureapo.png&amp;diff=112567</id>
		<title>File:Captureapo.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Captureapo.png&amp;diff=112567"/>
		<updated>2017-11-08T02:42:20Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112565</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112565"/>
		<updated>2017-11-08T02:42:00Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: /* UI Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
New functions 'assignDuty' and 'selectDuty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
'''The new changes will be as follows in the UI - '''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The team would add the duties as - &lt;br /&gt;
&lt;br /&gt;
[[File:Duty_team.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Instructor would mark the assignment where team members will have duties or not - &lt;br /&gt;
&lt;br /&gt;
[[File:Assignmnet_duties.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Rubrics will added based on the role and a new text field will be added to do that - &lt;br /&gt;
&lt;br /&gt;
[[File:Captureapo.png]]&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112561</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112561"/>
		<updated>2017-11-08T02:41:16Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: /* UI Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
New functions 'assignDuty' and 'selectDuty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
'''The new changes will be as follows in the UI - '''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The team would add the duties as - &lt;br /&gt;
&lt;br /&gt;
[[File:Duty_team.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Instructor would mark the assignment where team members will have duties or not - &lt;br /&gt;
&lt;br /&gt;
[[File:Assignmnet_duties.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Rubrics will added based on the role and a new text field will be added to do that - &lt;br /&gt;
&lt;br /&gt;
[[File:Capture.png]]&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112538</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112538"/>
		<updated>2017-11-08T02:20:36Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
New functions 'assignDuty' and 'selectDuty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
'''The new changes will be as follows in the UI - '''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The team would add the duties as - &lt;br /&gt;
&lt;br /&gt;
[[File:Duty_team.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Instructor would mark the assignment where team members will have duties or not - &lt;br /&gt;
&lt;br /&gt;
[[File:Assignmnet_duties.png]]&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignmnet_duties.png&amp;diff=112537</id>
		<title>File:Assignmnet duties.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignmnet_duties.png&amp;diff=112537"/>
		<updated>2017-11-08T02:18:47Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: uploaded a new version of &amp;amp;quot;File:Assignmnet duties.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty_team.png&amp;diff=112536</id>
		<title>File:Duty team.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty_team.png&amp;diff=112536"/>
		<updated>2017-11-08T02:17:53Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: uploaded a new version of &amp;amp;quot;File:Duty team.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112535</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112535"/>
		<updated>2017-11-08T02:10:18Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
New functions 'assignDuty' and 'selectDuty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
'''The new changes will be as follows in the UI - '''&lt;br /&gt;
The team would add the duties as - &lt;br /&gt;
&lt;br /&gt;
[[File:Duty_team.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Instructor would mark the assignment where team members will have duties or not - &lt;br /&gt;
[[File:Assignmnet_duties.png]]&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignmnet_duties.png&amp;diff=112533</id>
		<title>File:Assignmnet duties.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignmnet_duties.png&amp;diff=112533"/>
		<updated>2017-11-08T02:04:42Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: uploaded a new version of &amp;amp;quot;File:Assignmnet duties.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty_team.png&amp;diff=112532</id>
		<title>File:Duty team.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty_team.png&amp;diff=112532"/>
		<updated>2017-11-08T02:04:04Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: uploaded a new version of &amp;amp;quot;File:Duty team.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignmnet_duties.png&amp;diff=112530</id>
		<title>File:Assignmnet duties.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignmnet_duties.png&amp;diff=112530"/>
		<updated>2017-11-08T02:00:46Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112527</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112527"/>
		<updated>2017-11-08T01:54:14Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
New functions 'assignDuty' and 'selectDuty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
'''The new changes will be as follows in the UI - '''&lt;br /&gt;
&lt;br /&gt;
[[File:Duty_team.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Assignmnet_duties.png]]&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty_team.png&amp;diff=112522</id>
		<title>File:Duty team.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Duty_team.png&amp;diff=112522"/>
		<updated>2017-11-08T01:50:46Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112521</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112521"/>
		<updated>2017-11-08T01:50:09Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
New functions 'assignDuty' and 'selectDuty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
'''The new changes will be as follows in the UI - '''&lt;br /&gt;
&lt;br /&gt;
[[File:Duty_team.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Assignmnet_duties]]&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Select.png&amp;diff=112520</id>
		<title>File:Select.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Select.png&amp;diff=112520"/>
		<updated>2017-11-08T01:46:53Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112503</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112503"/>
		<updated>2017-11-08T01:06:08Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
''Controllers'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
New functions 'assignDuty' and 'selectDuty' will be defined so that a team member can select a duty and save it.&lt;br /&gt;
&lt;br /&gt;
''Views'' - &lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112459</id>
		<title>CSC/ECE 517 Fall 2017/E1798 Role-based Reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1798_Role-based_Reviewing&amp;diff=112459"/>
		<updated>2017-11-08T00:46:32Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Statement ==&lt;br /&gt;
In various agile methodologies, such as Scrum, different team members take on different duties, such as architect, designer, tester and implementer. The purpose of this project is to assign different duties to team members of an assignment. While reviewing too, there will be different rubrics for evaluating the contribution of members with different roles.&lt;br /&gt;
&lt;br /&gt;
== Solution Plan ==&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
1. A table 'duties' will be created. It will contain all the duties assigned in one assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
2. While creating or editing an assignment, there will be a checkbox in the 'Review Strategies' tab, which will specify whether the assignment is a role-based assignment.&amp;lt;br&amp;gt;&lt;br /&gt;
3. If the checkbox is checked, different duties can be added to the assignment through the UI.&amp;lt;br&amp;gt;&lt;br /&gt;
4. When an assignment is a role-based assignment, the student should be able to assign duties to himself through the 'Your Team' page of the team member.&amp;lt;br&amp;gt;&lt;br /&gt;
5. While reviewing, there will be different rubrics associated with different duties, which can be created through the 'Questionnaires' tab on the homepage.&amp;lt;br&amp;gt;&lt;br /&gt;
6. When a particular teammate is being reviewed, the system should present the correct rubric based on the duty of the teammate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Database Changes ===&lt;br /&gt;
A new table called 'duties' will be created with the following structure -&amp;lt;br&amp;gt;&lt;br /&gt;
'''assignment_number''' (numeric) - the assignment number that will have the duty, this will be the id field of table assignments (foreign key)&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_name''' (varchar) - duty assigned to that assignment number.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing table 'assignments' will be modified to include the following fields -&amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_flag''' (boolean) - If the assignment is role-based, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
'''multiple_duty''' (boolean) - If multiple team members can have the same duty in one assignment, this field will be '''true'''. Otherwise, it should be '''false'''. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The existing table 'teams_users' will be modified to include the following fields - &amp;lt;br&amp;gt;&lt;br /&gt;
'''duty_id''' (varchar) - If the duty_flag is checked, this field will give the duty assigned to a team member for the assignment.&lt;br /&gt;
&lt;br /&gt;
=== Proposed File Changes ===&lt;br /&gt;
'''1. assignments/edit/_review_stategy.html.erb''' - This is view file that has the 'Review Strategy' form for a new or modified assignment. This view will have a checkbox that will specify whether the assignment is role-based.&lt;br /&gt;
&lt;br /&gt;
'''2. assignments_controller.rb''' - This is the controller that handles the actions performed by view in _review_stategy.html.erb. &lt;br /&gt;
&lt;br /&gt;
New function 'saveDuty' to be created - This will save the duties assigned to an assignment.&lt;br /&gt;
&lt;br /&gt;
Existing function 'edit' to be modified - This function will save whether the assignment is role-based and whether multiple team members can have the same duties. &lt;br /&gt;
&lt;br /&gt;
'''3. assignments/edit/_rubrics.html.erb''' - This view file for the 'Rubrics' tab will specify the reviewing rubric that is applicable to each role.&lt;br /&gt;
&lt;br /&gt;
'''4.student_teams/view.html.erb''' - This view shows the team members and their email id's. we can review them from here. If the assignment is a duty based one, then duties will be visible along side the existing fields. If the duties are not selected yet, then a set duties drop down will be visible.&lt;br /&gt;
&lt;br /&gt;
'''5.student_teams_controller.rb''' - The controller function for 'view' will be modified to show the duty and also select a duty for a team member so that review rubrics can be done based on that role.&lt;br /&gt;
&lt;br /&gt;
=== UI Description ===&lt;br /&gt;
&lt;br /&gt;
== Use Case ==&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017&amp;diff=109730</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=109730"/>
		<updated>2017-10-27T06:53:03Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Writing Assignment 2'''&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1779. Fix teammate advertisements and requests to join a team]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1773 Investigate and Fix Expertiza Production Version Runtime Exceptions.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1774 Metareview fixes and improvements.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1788 OSS project Maroon Heatmap fixes]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1781 Topic Management]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1745_Refactor_response_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1752 Refactor assignments controller]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1776_Enhance_Imports]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1756 TLD Refactor response.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1772_Refactor reputation_web_service_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/M1754_Mutation Testing on Servo]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1753 OSS project bidding tests]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1766_Test team functionality]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1787_OSS project Bronze Score calculations]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2017/E1763 Fix Staggered-Deadline Assignments]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors]]&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109729</id>
		<title>CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109729"/>
		<updated>2017-10-27T06:48:32Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page documents the changes made as a part of E1757 which allows users with instructor role to view Expertiza as a student.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
In Expertiza, instructors can act as students, but they do so by using different pull-down menus. This is potentially confusing, especially for Assignments, which appear both in the admin and student menus.&lt;br /&gt;
&lt;br /&gt;
An '''instructor''' sees the following menus across the top (if his/her window is wide enough; otherwise, the menus show up when the menu icon is clicked on):&lt;br /&gt;
&lt;br /&gt;
''Home	 Manage   Survey Deployments   Assignments   Course Evaluation   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
A '''student''' sees these menus:&lt;br /&gt;
&lt;br /&gt;
''Home	 Assignments   Course Evaluations   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
On the instructor’s Manage menu, one of the options is “Assignments”.  Having Assignments appear in two places in the menu is potentially confusing.  Manage &amp;gt; Assignments allows the instructor to edit and create assignments.  The Assignments menu that both students and instructors see allows them to participate in assignments.&lt;br /&gt;
&lt;br /&gt;
Hence, to avoid confusion, a new view is introduced.&lt;br /&gt;
&lt;br /&gt;
=== Problem statement ===&lt;br /&gt;
To create a ''Student View'' that would make the instructor view the system the way (s)he would view it if they were a student. Once the instructor is in student view, the menu items are same as a student would view, so to come back as the instructor, a button should be visible to the instructor that would exit the ''Student View'' and take the instructor back to his/her home page.&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
# Amit Kanwar&lt;br /&gt;
# Apoorva Mehta&lt;br /&gt;
# Gaurav Joshi&lt;br /&gt;
&lt;br /&gt;
'''Mentor''' - Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== student_view_controller.rb ===&lt;br /&gt;
A new controller is created ''app/controllers/student_view_controller.rb'' to handle the new student view functionality, which ''sets'' and instructor to student view and ''reverts'' the view back to instructor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@ -0,0 +1,21 @@&lt;br /&gt;
class StudentViewController &amp;lt; ApplicationController&lt;br /&gt;
  def action_allowed?&lt;br /&gt;
    case params[:action]&lt;br /&gt;
    when 'set'&lt;br /&gt;
	true&lt;br /&gt;
    when 'revert'&lt;br /&gt;
	true&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set&lt;br /&gt;
    session[:student_view] = true&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def revert&lt;br /&gt;
    session.delete(:student_view)&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== role_instructor.yml ===&lt;br /&gt;
&lt;br /&gt;
A new view is created for the instructor in ''config/role_instructor.yml'' which will show the view under the Manage menu item. The view id is 25.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      51: &amp;amp;25 !ruby/object:Menu::Node&lt;br /&gt;
        content_page_id:&lt;br /&gt;
        controller_action_id: 15&lt;br /&gt;
        id: 51&lt;br /&gt;
        label: Student View&lt;br /&gt;
        name: student_view&lt;br /&gt;
        parent:&lt;br /&gt;
        parent_id: 37&lt;br /&gt;
        site_controller_id: 35&lt;br /&gt;
        url: &amp;quot;/student_view/set&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _navigation.html.erb ===&lt;br /&gt;
&lt;br /&gt;
A new session variable (:student_view) will be used to check if an instructor is in student view or not and will be used to exit the Student view, code changes in  ''app/views/shared/_navigation.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;% if session.key?(:student_view) %&amp;gt;&lt;br /&gt;
      &amp;lt;%= form_for :student_view, url: '/student_view/revert', html: {id: 'instructor-form'} do |f| %&amp;gt;&lt;br /&gt;
          &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; id=&amp;quot;instructor-button&amp;quot;&amp;gt;Revert to Instructor View&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
   &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    jQuery(&amp;quot;#instructor-button&amp;quot;).click(function(event) {&lt;br /&gt;
	jQuery(&amp;quot;#instructor-form&amp;quot;).submit()&lt;br /&gt;
    });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _suckerfish.html.erb ===&lt;br /&gt;
&lt;br /&gt;
The different menu items are shown for particular roles, we check the new session variable to show or hide the various menu items accordingly for the instructor in ''app/views/menu_items/_suckerfish.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   student_view = session.key?(:student_view) ? ([1, 26, 27, 2, 14].include? item_id) ? true : false : false&lt;br /&gt;
   instructor_view = !session.key?(:student_view) ? ([1, 37, 35, 30, 27, 2, 13, 38, 44, 45, 33, 50, 51, 36, 14].include? item_id) ? true: false : false&lt;br /&gt;
   if !student_view and !instructor_view then&lt;br /&gt;
     conditional = false&lt;br /&gt;
   if session[:user].role.name == &amp;quot;Instructor&amp;quot; then&lt;br /&gt;
     if !student_view and !instructor_view then&lt;br /&gt;
       conditional = false&lt;br /&gt;
     else&lt;br /&gt;
       conditional = true&lt;br /&gt;
     end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== routes.rb ===&lt;br /&gt;
&lt;br /&gt;
The new controller methods are added in ''config/routes.rb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  post '/student_view/set', to: 'student_view#set'&lt;br /&gt;
  post '/student_view/revert', to: 'student_view#revert'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
The user needs to log-in as instructor to view the developed functionality, this won't be visible for other user roles-&lt;br /&gt;
&lt;br /&gt;
1. Go to Manage &amp;gt; Student View&lt;br /&gt;
&lt;br /&gt;
2. Instructor views Expertiza as a student.&lt;br /&gt;
&lt;br /&gt;
3. A revert button appears at the top right corner, to exit the Student view.&lt;br /&gt;
&lt;br /&gt;
4. Clicking the button takes you back to the instructor view.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link for forked repository [[https://github.com/Aminoid/expertiza/commits/master]]&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109728</id>
		<title>CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109728"/>
		<updated>2017-10-27T06:46:00Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the description of changes made under E1757 OSS assignment for Fall 2017, CSC/ECE 517. This changes made allow users with instructor role to view Expertiza as a student.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
In Expertiza, instructors can act as students, but they do so by using different pull-down menus. This is potentially confusing, especially for Assignments, which appear both in the admin and student menus.&lt;br /&gt;
&lt;br /&gt;
An '''instructor''' sees the following menus across the top (if his/her window is wide enough; otherwise, the menus show up when the menu icon is clicked on):&lt;br /&gt;
&lt;br /&gt;
''Home	 Manage   Survey Deployments   Assignments   Course Evaluation   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
A '''student''' sees these menus:&lt;br /&gt;
&lt;br /&gt;
''Home	 Assignments   Course Evaluations   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
On the instructor’s Manage menu, one of the options is “Assignments”.  Having Assignments appear in two places in the menu is potentially confusing.  Manage &amp;gt; Assignments allows the instructor to edit and create assignments.  The Assignments menu that both students and instructors see allows them to participate in assignments.&lt;br /&gt;
&lt;br /&gt;
Hence, to avoid confusion, a new view is introduced.&lt;br /&gt;
&lt;br /&gt;
=== Problem statement ===&lt;br /&gt;
To create a ''Student View'' that would make the instructor view the system the way (s)he would view it if they were a student. Once the instructor is in student view, the menu items are same as a student would view, so to come back as the instructor, a button should be visible to the instructor that would exit the ''Student View'' and take the instructor back to his/her home page.&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
# Amit Kanwar&lt;br /&gt;
# Apoorva Mehta&lt;br /&gt;
# Gaurav Joshi&lt;br /&gt;
&lt;br /&gt;
'''Mentor''' - Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== student_view_controller.rb ===&lt;br /&gt;
A new controller is created ''app/controllers/student_view_controller.rb'' to handle the new student view functionality, which ''sets'' and instructor to student view and ''reverts'' the view back to instructor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@ -0,0 +1,21 @@&lt;br /&gt;
class StudentViewController &amp;lt; ApplicationController&lt;br /&gt;
  def action_allowed?&lt;br /&gt;
    case params[:action]&lt;br /&gt;
    when 'set'&lt;br /&gt;
	true&lt;br /&gt;
    when 'revert'&lt;br /&gt;
	true&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set&lt;br /&gt;
    session[:student_view] = true&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def revert&lt;br /&gt;
    session.delete(:student_view)&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== role_instructor.yml ===&lt;br /&gt;
&lt;br /&gt;
A new view is created for the instructor in ''config/role_instructor.yml'' which will show the view under the Manage menu item. The view id is 25.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      51: &amp;amp;25 !ruby/object:Menu::Node&lt;br /&gt;
        content_page_id:&lt;br /&gt;
        controller_action_id: 15&lt;br /&gt;
        id: 51&lt;br /&gt;
        label: Student View&lt;br /&gt;
        name: student_view&lt;br /&gt;
        parent:&lt;br /&gt;
        parent_id: 37&lt;br /&gt;
        site_controller_id: 35&lt;br /&gt;
        url: &amp;quot;/student_view/set&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _navigation.html.erb ===&lt;br /&gt;
&lt;br /&gt;
A new session variable (:student_view) will be used to check if an instructor is in student view or not and will be used to exit the Student view, code changes in  ''app/views/shared/_navigation.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;% if session.key?(:student_view) %&amp;gt;&lt;br /&gt;
      &amp;lt;%= form_for :student_view, url: '/student_view/revert', html: {id: 'instructor-form'} do |f| %&amp;gt;&lt;br /&gt;
          &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; id=&amp;quot;instructor-button&amp;quot;&amp;gt;Revert to Instructor View&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
   &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    jQuery(&amp;quot;#instructor-button&amp;quot;).click(function(event) {&lt;br /&gt;
	jQuery(&amp;quot;#instructor-form&amp;quot;).submit()&lt;br /&gt;
    });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _suckerfish.html.erb ===&lt;br /&gt;
&lt;br /&gt;
The different menu items are shown for particular roles, we check the new session variable to show or hide the various menu items accordingly for the instructor in ''app/views/menu_items/_suckerfish.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   student_view = session.key?(:student_view) ? ([1, 26, 27, 2, 14].include? item_id) ? true : false : false&lt;br /&gt;
   instructor_view = !session.key?(:student_view) ? ([1, 37, 35, 30, 27, 2, 13, 38, 44, 45, 33, 50, 51, 36, 14].include? item_id) ? true: false : false&lt;br /&gt;
   if !student_view and !instructor_view then&lt;br /&gt;
     conditional = false&lt;br /&gt;
   if session[:user].role.name == &amp;quot;Instructor&amp;quot; then&lt;br /&gt;
     if !student_view and !instructor_view then&lt;br /&gt;
       conditional = false&lt;br /&gt;
     else&lt;br /&gt;
       conditional = true&lt;br /&gt;
     end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== routes.rb ===&lt;br /&gt;
&lt;br /&gt;
The new controller methods are added in ''config/routes.rb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  post '/student_view/set', to: 'student_view#set'&lt;br /&gt;
  post '/student_view/revert', to: 'student_view#revert'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
The user needs to log-in as instructor to view the developed functionality, this won't be visible for other user roles-&lt;br /&gt;
&lt;br /&gt;
1. Go to Manage &amp;gt; Student View&lt;br /&gt;
&lt;br /&gt;
2. Instructor views Expertiza as a student.&lt;br /&gt;
&lt;br /&gt;
3. A revert button appears at the top right corner, to exit the Student view.&lt;br /&gt;
&lt;br /&gt;
4. Clicking the button takes you back to the instructor view.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link for forked repository [[https://github.com/Aminoid/expertiza/commits/master]]&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109727</id>
		<title>CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109727"/>
		<updated>2017-10-27T06:41:38Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
In Expertiza, instructors can act as students, but they do so by using different pull-down menus. This is potentially confusing, especially for Assignments, which appear both in the admin and student menus.&lt;br /&gt;
&lt;br /&gt;
An '''instructor''' sees the following menus across the top (if his/her window is wide enough; otherwise, the menus show up when the menu icon is clicked on):&lt;br /&gt;
&lt;br /&gt;
''Home	 Manage   Survey Deployments   Assignments   Course Evaluation   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
A '''student''' sees these menus:&lt;br /&gt;
&lt;br /&gt;
''Home	 Assignments   Course Evaluations   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
On the instructor’s Manage menu, one of the options is “Assignments”.  Having Assignments appear in two places in the menu is potentially confusing.  Manage &amp;gt; Assignments allows the instructor to edit and create assignments.  The Assignments menu that both students and instructors see allows them to participate in assignments.&lt;br /&gt;
&lt;br /&gt;
Hence, to avoid confusion, a new view is introduced.&lt;br /&gt;
&lt;br /&gt;
=== Problem statement ===&lt;br /&gt;
To create a ''Student View'' that would make the instructor view the system the way (s)he would view it if they were a student. Once the instructor is in student view, the menu items are same as a student would view, so to come back as the instructor, a button should be visible to the instructor that would exit the ''Student View'' and take the instructor back to his/her home page.&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
# Amit Kanwar&lt;br /&gt;
# Apoorva Mehta&lt;br /&gt;
# Gaurav Joshi&lt;br /&gt;
&lt;br /&gt;
'''Mentor''' - Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== student_view_controller.rb ===&lt;br /&gt;
A new controller is created ''app/controllers/student_view_controller.rb'' to handle the new student view functionality, which ''sets'' and instructor to student view and ''reverts'' the view back to instructor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@ -0,0 +1,21 @@&lt;br /&gt;
class StudentViewController &amp;lt; ApplicationController&lt;br /&gt;
  def action_allowed?&lt;br /&gt;
    case params[:action]&lt;br /&gt;
    when 'set'&lt;br /&gt;
	true&lt;br /&gt;
    when 'revert'&lt;br /&gt;
	true&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set&lt;br /&gt;
    session[:student_view] = true&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def revert&lt;br /&gt;
    session.delete(:student_view)&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== role_instructor.yml ===&lt;br /&gt;
&lt;br /&gt;
A new view is created for the instructor in ''config/role_instructor.yml'' which will show the view under the Manage menu item. The view id is 25.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      51: &amp;amp;25 !ruby/object:Menu::Node&lt;br /&gt;
        content_page_id:&lt;br /&gt;
        controller_action_id: 15&lt;br /&gt;
        id: 51&lt;br /&gt;
        label: Student View&lt;br /&gt;
        name: student_view&lt;br /&gt;
        parent:&lt;br /&gt;
        parent_id: 37&lt;br /&gt;
        site_controller_id: 35&lt;br /&gt;
        url: &amp;quot;/student_view/set&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _navigation.html.erb ===&lt;br /&gt;
&lt;br /&gt;
A new session variable (:student_view) will be used to check if an instructor is in student view or not and will be used to exit the Student view, code changes in  ''app/views/shared/_navigation.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;% if session.key?(:student_view) %&amp;gt;&lt;br /&gt;
      &amp;lt;%= form_for :student_view, url: '/student_view/revert', html: {id: 'instructor-form'} do |f| %&amp;gt;&lt;br /&gt;
          &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; id=&amp;quot;instructor-button&amp;quot;&amp;gt;Revert to Instructor View&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
   &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    jQuery(&amp;quot;#instructor-button&amp;quot;).click(function(event) {&lt;br /&gt;
	jQuery(&amp;quot;#instructor-form&amp;quot;).submit()&lt;br /&gt;
    });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _suckerfish.html.erb ===&lt;br /&gt;
&lt;br /&gt;
The different menu items are shown for particular roles, we check the new session variable to show or hide the various menu items accordingly for the instructor in ''app/views/menu_items/_suckerfish.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   student_view = session.key?(:student_view) ? ([1, 26, 27, 2, 14].include? item_id) ? true : false : false&lt;br /&gt;
   instructor_view = !session.key?(:student_view) ? ([1, 37, 35, 30, 27, 2, 13, 38, 44, 45, 33, 50, 51, 36, 14].include? item_id) ? true: false : false&lt;br /&gt;
   if !student_view and !instructor_view then&lt;br /&gt;
     conditional = false&lt;br /&gt;
   if session[:user].role.name == &amp;quot;Instructor&amp;quot; then&lt;br /&gt;
     if !student_view and !instructor_view then&lt;br /&gt;
       conditional = false&lt;br /&gt;
     else&lt;br /&gt;
       conditional = true&lt;br /&gt;
     end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== routes.rb ===&lt;br /&gt;
&lt;br /&gt;
The new controller methods are added in ''config/routes.rb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  post '/student_view/set', to: 'student_view#set'&lt;br /&gt;
  post '/student_view/revert', to: 'student_view#revert'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
The user needs to log-in as instructor to view the developed functionality, this won't be visible for other user roles-&lt;br /&gt;
&lt;br /&gt;
1. Go to Manage &amp;gt; Student View&lt;br /&gt;
&lt;br /&gt;
2. Instructor views Expertiza as a student.&lt;br /&gt;
&lt;br /&gt;
3. A revert button appears at the top right corner, to exit the Student view.&lt;br /&gt;
&lt;br /&gt;
4. Clicking the button takes you back to the instructor view.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link for forked repository [[https://github.com/Aminoid/expertiza/commits/master]]&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109726</id>
		<title>CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109726"/>
		<updated>2017-10-27T06:38:09Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
In Expertiza, instructors can act as students, but they do so by using different pull-down menus. This is potentially confusing, especially for Assignments, which appear both in the admin and student menus.&lt;br /&gt;
&lt;br /&gt;
An '''instructor''' sees the following menus across the top (if his/her window is wide enough; otherwise, the menus show up when the menu icon is clicked on):&lt;br /&gt;
&lt;br /&gt;
''Home	 Manage   Survey Deployments   Assignments   Course Evaluation   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
A '''student''' sees these menus:&lt;br /&gt;
&lt;br /&gt;
''Home	 Assignments   Course Evaluations   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
On the instructor’s Manage menu, one of the options is “Assignments”.  Having Assignments appear in two places in the menu is potentially confusing.  Manage &amp;gt; Assignments allows the instructor to edit and create assignments.  The Assignments menu that both students and instructors see allows them to participate in assignments.&lt;br /&gt;
&lt;br /&gt;
Hence, to avoid confusion, a new view is introduced.&lt;br /&gt;
&lt;br /&gt;
=== Problem statement ===&lt;br /&gt;
To create a ''Student View'' that would make the instructor view the system the way (s)he would view it if they were a student. Once the instructor is in student view, the menu items are same as a student would view, so to come back as the instructor, a button should be visible to the instructor that would exit the ''Student View'' and take the instructor back to his/her home page.&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
# Amit Kanwar&lt;br /&gt;
# Apoorva Mehta&lt;br /&gt;
# Gaurav Joshi&lt;br /&gt;
&lt;br /&gt;
'''Mentor''' - Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== student_view_controller.rb ===&lt;br /&gt;
A new controller is created ''app/controllers/student_view_controller.rb'' to handle the new student view functionality, which ''sets'' and instructor to student view and ''reverts'' the view back to instructor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@ -0,0 +1,21 @@&lt;br /&gt;
class StudentViewController &amp;lt; ApplicationController&lt;br /&gt;
  def action_allowed?&lt;br /&gt;
    case params[:action]&lt;br /&gt;
    when 'set'&lt;br /&gt;
	true&lt;br /&gt;
    when 'revert'&lt;br /&gt;
	true&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set&lt;br /&gt;
    session[:student_view] = true&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def revert&lt;br /&gt;
    session.delete(:student_view)&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== role_instructor.yml ===&lt;br /&gt;
&lt;br /&gt;
A new view is created for the instructor in ''config/role_instructor.yml'' which will show the view under the Manage menu item. The view id is 25.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      51: &amp;amp;25 !ruby/object:Menu::Node&lt;br /&gt;
        content_page_id:&lt;br /&gt;
        controller_action_id: 15&lt;br /&gt;
        id: 51&lt;br /&gt;
        label: Student View&lt;br /&gt;
        name: student_view&lt;br /&gt;
        parent:&lt;br /&gt;
        parent_id: 37&lt;br /&gt;
        site_controller_id: 35&lt;br /&gt;
        url: &amp;quot;/student_view/set&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _navigation.html.erb ===&lt;br /&gt;
&lt;br /&gt;
A new session variable (:student_view) will be used to check if an instructor is in student view or not and will be used to exit the Student view, code changes in  ''app/views/shared/_navigation.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;% if session.key?(:student_view) %&amp;gt;&lt;br /&gt;
      &amp;lt;%= form_for :student_view, url: '/student_view/revert', html: {id: 'instructor-form'} do |f| %&amp;gt;&lt;br /&gt;
          &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; id=&amp;quot;instructor-button&amp;quot;&amp;gt;Revert to Instructor View&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
   &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    jQuery(&amp;quot;#instructor-button&amp;quot;).click(function(event) {&lt;br /&gt;
	jQuery(&amp;quot;#instructor-form&amp;quot;).submit()&lt;br /&gt;
    });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _suckerfish.html.erb ===&lt;br /&gt;
&lt;br /&gt;
The different menu items are shown for particular roles, we check the new session variable to show or hide the various menu items accordingly for the instructor in ''app/views/menu_items/_suckerfish.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   student_view = session.key?(:student_view) ? ([1, 26, 27, 2, 14].include? item_id) ? true : false : false&lt;br /&gt;
   instructor_view = !session.key?(:student_view) ? ([1, 37, 35, 30, 27, 2, 13, 38, 44, 45, 33, 50, 51, 36, 14].include? item_id) ? true: false : false&lt;br /&gt;
   if !student_view and !instructor_view then&lt;br /&gt;
     conditional = false&lt;br /&gt;
   if session[:user].role.name == &amp;quot;Instructor&amp;quot; then&lt;br /&gt;
     if !student_view and !instructor_view then&lt;br /&gt;
       conditional = false&lt;br /&gt;
     else&lt;br /&gt;
       conditional = true&lt;br /&gt;
     end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== routes.rb ===&lt;br /&gt;
&lt;br /&gt;
The new controller methods are added in ''config/routes.rb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  post '/student_view/set', to: 'student_view#set'&lt;br /&gt;
  post '/student_view/revert', to: 'student_view#revert'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
The user needs to log-in as instructor to view the developed functionality, this won't be visible for other user roles-&lt;br /&gt;
&lt;br /&gt;
1. Go to Manage &amp;gt; Student View&lt;br /&gt;
&lt;br /&gt;
2. Instructor views Expertiza as a student.&lt;br /&gt;
&lt;br /&gt;
3. A revert button appears at the top right corner, to exit the Student view.&lt;br /&gt;
&lt;br /&gt;
4. Clicking the button takes you back to the instructor view.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link for forked repository [[https://github.com/Aminoid/expertiza/commits/master]]&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109725</id>
		<title>CSC/ECE 517 Fall 2017/E1757 Introduce a Student View for instructors</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/E1757_Introduce_a_Student_View_for_instructors&amp;diff=109725"/>
		<updated>2017-10-27T06:37:35Z</updated>

		<summary type="html">&lt;p&gt;Amehta8: This wiki page is for the description of changes made under E1757 OSS assignment for Fall 2017, CSC/ECE 517. The changes made allow instructors to view Expertiza as a student.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
In Expertiza, instructors can act as students, but they do so by using different pull-down menus. This is potentially confusing, especially for Assignments, which appear both in the admin and student menus.&lt;br /&gt;
&lt;br /&gt;
An '''instructor''' sees the following menus across the top (if his/her window is wide enough; otherwise, the menus show up when the menu icon is clicked on):&lt;br /&gt;
&lt;br /&gt;
''Home	 Manage   Survey Deployments   Assignments   Course Evaluation   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
A '''student''' sees these menus:&lt;br /&gt;
&lt;br /&gt;
''Home	 Assignments   Course Evaluations   Profile   Contact Us''&lt;br /&gt;
&lt;br /&gt;
On the instructor’s Manage menu, one of the options is “Assignments”.  Having Assignments appear in two places in the menu is potentially confusing.  Manage &amp;gt; Assignments allows the instructor to edit and create assignments.  The Assignments menu that both students and instructors see allows them to participate in assignments.&lt;br /&gt;
&lt;br /&gt;
Hence, to avoid confusion, a new view is introduced.&lt;br /&gt;
&lt;br /&gt;
=== Problem statement ===&lt;br /&gt;
To create a ''Student View'' that would make the instructor view the system the way (s)he would view it if they were a student. Once the instructor is in student view, the menu items are same as a student would view, so to come back as the instructor, a button should be visible to the instructor that would exit the ''Student View'' and take the instructor back to his/her home page.&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
# Amit Kanwar&lt;br /&gt;
&lt;br /&gt;
# Apoorva Mehta&lt;br /&gt;
&lt;br /&gt;
# Gaurav Joshi&lt;br /&gt;
&lt;br /&gt;
'''Mentor''' - Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== student_view_controller.rb ===&lt;br /&gt;
A new controller is created ''app/controllers/student_view_controller.rb'' to handle the new student view functionality, which ''sets'' and instructor to student view and ''reverts'' the view back to instructor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@ -0,0 +1,21 @@&lt;br /&gt;
class StudentViewController &amp;lt; ApplicationController&lt;br /&gt;
  def action_allowed?&lt;br /&gt;
    case params[:action]&lt;br /&gt;
    when 'set'&lt;br /&gt;
	true&lt;br /&gt;
    when 'revert'&lt;br /&gt;
	true&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set&lt;br /&gt;
    session[:student_view] = true&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def revert&lt;br /&gt;
    session.delete(:student_view)&lt;br /&gt;
    redirect_back&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== role_instructor.yml ===&lt;br /&gt;
&lt;br /&gt;
A new view is created for the instructor in ''config/role_instructor.yml'' which will show the view under the Manage menu item. The view id is 25.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      51: &amp;amp;25 !ruby/object:Menu::Node&lt;br /&gt;
        content_page_id:&lt;br /&gt;
        controller_action_id: 15&lt;br /&gt;
        id: 51&lt;br /&gt;
        label: Student View&lt;br /&gt;
        name: student_view&lt;br /&gt;
        parent:&lt;br /&gt;
        parent_id: 37&lt;br /&gt;
        site_controller_id: 35&lt;br /&gt;
        url: &amp;quot;/student_view/set&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _navigation.html.erb ===&lt;br /&gt;
&lt;br /&gt;
A new session variable (:student_view) will be used to check if an instructor is in student view or not and will be used to exit the Student view, code changes in  ''app/views/shared/_navigation.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;% if session.key?(:student_view) %&amp;gt;&lt;br /&gt;
      &amp;lt;%= form_for :student_view, url: '/student_view/revert', html: {id: 'instructor-form'} do |f| %&amp;gt;&lt;br /&gt;
          &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn btn-primary&amp;quot; id=&amp;quot;instructor-button&amp;quot;&amp;gt;Revert to Instructor View&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
   &amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    jQuery(&amp;quot;#instructor-button&amp;quot;).click(function(event) {&lt;br /&gt;
	jQuery(&amp;quot;#instructor-form&amp;quot;).submit()&lt;br /&gt;
    });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== _suckerfish.html.erb ===&lt;br /&gt;
&lt;br /&gt;
The different menu items are shown for particular roles, we check the new session variable to show or hide the various menu items accordingly for the instructor in ''app/views/menu_items/_suckerfish.html.erb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   student_view = session.key?(:student_view) ? ([1, 26, 27, 2, 14].include? item_id) ? true : false : false&lt;br /&gt;
   instructor_view = !session.key?(:student_view) ? ([1, 37, 35, 30, 27, 2, 13, 38, 44, 45, 33, 50, 51, 36, 14].include? item_id) ? true: false : false&lt;br /&gt;
   if !student_view and !instructor_view then&lt;br /&gt;
     conditional = false&lt;br /&gt;
   if session[:user].role.name == &amp;quot;Instructor&amp;quot; then&lt;br /&gt;
     if !student_view and !instructor_view then&lt;br /&gt;
       conditional = false&lt;br /&gt;
     else&lt;br /&gt;
       conditional = true&lt;br /&gt;
     end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== routes.rb ===&lt;br /&gt;
&lt;br /&gt;
The new controller methods are added in ''config/routes.rb''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  post '/student_view/set', to: 'student_view#set'&lt;br /&gt;
  post '/student_view/revert', to: 'student_view#revert'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
The user needs to log-in as instructor to view the developed functionality, this won't be visible for other user roles-&lt;br /&gt;
&lt;br /&gt;
1. Go to Manage &amp;gt; Student View&lt;br /&gt;
&lt;br /&gt;
2. Instructor views Expertiza as a student.&lt;br /&gt;
&lt;br /&gt;
3. A revert button appears at the top right corner, to exit the Student view.&lt;br /&gt;
&lt;br /&gt;
4. Clicking the button takes you back to the instructor view.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
# link for forked repository [[https://github.com/Aminoid/expertiza/commits/master]]&lt;/div&gt;</summary>
		<author><name>Amehta8</name></author>
	</entry>
</feed>