<?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=Gsingh23</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=Gsingh23"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Gsingh23"/>
	<updated>2026-06-30T19:08:29Z</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_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131392</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131392"/>
		<updated>2020-03-13T08:58:42Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
===Pull Request===&lt;br /&gt;
https://github.com/expertiza/expertiza/pull/1649&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be shown on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link, username and temporary password.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to join the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Authors will use this assignment to submit conference papers. If author does not have account already in expertiza, a new account will be created for him.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and adding submissions to the assignment. Creation of new account will not require approval from instructor/admin. Joining URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases based on whether author has expertiza account or not. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author's expertiza account already exists, then he or she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author's expertiza does not exists then he/she will receive an email with username and password and expertiza link on his/her email, that was given by author to invite the co-author. When co-author logs in with same email id or password, he/she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
3. After that co-author can accept or reject the team invite and proceed with assignment submission.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====spec/controllers/invitations_controller_spec.rb====&lt;br /&gt;
This spec would test the following scenarios when an author is inviting co-authors to join his/her team&lt;br /&gt;
&lt;br /&gt;
1) When the co-author does not have an expertiza account:&lt;br /&gt;
It is expected that invitation creation should increase the User count by one and Invitations count by one&lt;br /&gt;
&lt;br /&gt;
2) When the co-author already has an expertiza account:&lt;br /&gt;
It is expected that invitation creation should increase only the Invitations count by one as user is already existing&lt;br /&gt;
&lt;br /&gt;
3) When email entered by the author is in wrong format and co-author does not exist already:&lt;br /&gt;
It is expected that no new invitation should be created.&lt;br /&gt;
&lt;br /&gt;
4) (Regression) for a normal assignment, if author tries to add a teammate who does not have an expertiza account&lt;br /&gt;
It is expected that no new invitation or user should be created.&lt;br /&gt;
&lt;br /&gt;
====spec/controllers/users_controller_spec.rb====&lt;br /&gt;
This spec would test the following scenarios when an author is joining the conference assignment as a participant&lt;br /&gt;
&lt;br /&gt;
1) When the author does not have an expertiza account:&lt;br /&gt;
It is expected that User count should be increased by one and participants count should increase by one&lt;br /&gt;
&lt;br /&gt;
2) When the author already has an expertiza account but is logged out:&lt;br /&gt;
It is expected that only participants count should increase by one&lt;br /&gt;
&lt;br /&gt;
3) When the author already has an expertiza account and is logged in:&lt;br /&gt;
It is expected that only participants count should increase by one&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131336</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131336"/>
		<updated>2019-12-17T07:04:35Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* RSpec Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be shown on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link, username and temporary password.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to join the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Authors will use this assignment to submit conference papers. If author does not have account already in expertiza, a new account will be created for him.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and adding submissions to the assignment. Creation of new account will not require approval from instructor/admin. Joining URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases based on whether author has expertiza account or not. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author's expertiza account already exists, then he or she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author's expertiza does not exists then he/she will receive an email with username and password and expertiza link on his/her email, that was given by author to invite the co-author. When co-author logs in with same email id or password, he/she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
3. After that co-author can accept or reject the team invite and proceed with assignment submission.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====spec/controllers/invitations_controller_spec.rb====&lt;br /&gt;
This spec would test the following scenarios when an author is inviting co-authors to join his/her team&lt;br /&gt;
&lt;br /&gt;
1) When the co-author does not have an expertiza account:&lt;br /&gt;
It is expected that invitation creation should increase the User count by one and Invitations count by one&lt;br /&gt;
&lt;br /&gt;
2) When the co-author already has an expertiza account:&lt;br /&gt;
It is expected that invitation creation should increase only the Invitations count by one as user is already existing&lt;br /&gt;
&lt;br /&gt;
3) When email entered by the author is in wrong format and co-author does not exist already:&lt;br /&gt;
It is expected that no new invitation should be created.&lt;br /&gt;
&lt;br /&gt;
4) (Regression) for a normal assignment, if author tries to add a teammate who does not have an expertiza account&lt;br /&gt;
It is expected that no new invitation or user should be created.&lt;br /&gt;
&lt;br /&gt;
====spec/controllers/users_controller_spec.rb====&lt;br /&gt;
This spec would test the following scenarios when an author is joining the conference assignment as a participant&lt;br /&gt;
&lt;br /&gt;
1) When the author does not have an expertiza account:&lt;br /&gt;
It is expected that User count should be increased by one and participants count should increase by one&lt;br /&gt;
&lt;br /&gt;
2) When the author already has an expertiza account but is logged out:&lt;br /&gt;
It is expected that only participants count should increase by one&lt;br /&gt;
&lt;br /&gt;
3) When the author already has an expertiza account and is logged in:&lt;br /&gt;
It is expected that only participants count should increase by one&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131326</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131326"/>
		<updated>2019-12-17T04:50:15Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* RSpec Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be shown on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link, username and temporary password.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to join the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Authors will use this assignment to submit conference papers. If author does not have account already in expertiza, a new account will be created for him.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and adding submissions to the assignment. Creation of new account will not require approval from instructor/admin. Joining URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases based on whether author has expertiza account or not. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author's expertiza account already exists, then he or she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author's expertiza does not exists then he/she will receive an email with username and password and expertiza link on his/her email, that was given by author to invite the co-author. When co-author logs in with same email id or password, he/she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
3. After that co-author can accept or reject the team invite and proceed with assignment submission.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====spec/controllers/invitations_controller_spec.rb====&lt;br /&gt;
This spec would test the following scenarios when an author is inviting co-authors to join his/her team&lt;br /&gt;
&lt;br /&gt;
1) When the co-author does not have an expertiza account:&lt;br /&gt;
It is expected that invitation creation should increase the User count by one and Invitations count by one&lt;br /&gt;
&lt;br /&gt;
2) When the co-author already has an expertiza account:&lt;br /&gt;
It is expected that invitation creation should increase only the Invitations count by one as user is already existing&lt;br /&gt;
&lt;br /&gt;
3) When email entered by the author is in wrong format and co-author does not exist already:&lt;br /&gt;
It is expected that no new invitation should be created.&lt;br /&gt;
&lt;br /&gt;
4) (Regression) for a normal assignment, if author tries to add a teammate who does not have an expertiza account&lt;br /&gt;
It is expected that no new invitation or user should be created.&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131287</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131287"/>
		<updated>2019-12-17T00:31:23Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Changes for Conference's co-authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be shown on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link, username and temporary password.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to join the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Authors will use this assignment to submit conference papers. If author does not have account already in expertiza, a new account will be created for him.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and adding submissions to the assignment. Creation of new account will not require approval from instructor/admin. Joining URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases based on whether author has expertiza account or not. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author's expertiza account already exists, then he or she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author's expertiza does not exists then he/she will receive an email with username and password and expertiza link on his/her email, that was given by author to invite the co-author. When co-author logs in with same email id or password, he/she will be able to see conference assignment in Assignments page and &amp;quot;Your Team&amp;quot; section will be having the invite sent by the author.&lt;br /&gt;
&lt;br /&gt;
3. After that co-author can accept or reject the team invite and proceed with assignment submission.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131286</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131286"/>
		<updated>2019-12-17T00:23:32Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Changes for Conference's authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be shown on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link, username and temporary password.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to join the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Authors will use this assignment to submit conference papers. If author does not have account already in expertiza, a new account will be created for him.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and adding submissions to the assignment. Creation of new account will not require approval from instructor/admin. Joining URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases based on whether author has expertiza account or not. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author expertiza account already exists, when Co-Author logs in expertiza, he or she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author does not exists then he/she will receive an email with login id and password and Expertiza web address on the email id, that was used by author to invite them. When Co-Author logs in with same email id or password, he/she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
3. After that Co-Author can accept or reject the team invite and proceed with assignment submission. &lt;br /&gt;
&lt;br /&gt;
4. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131285</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131285"/>
		<updated>2019-12-17T00:02:15Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Creating The conference type assignment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be shown on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link, username and temporary password.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to join the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Authors will use this assignment to submit conference papers. If author does not have account already in expertiza, a new account will be created for him.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases that author have expertiza account or author does not have expertiza account. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author expertiza account already exists, when Co-Author logs in expertiza, he or she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author does not exists then he/she will receive an email with login id and password and Expertiza web address on the email id, that was used by author to invite them. When Co-Author logs in with same email id or password, he/she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
3. After that Co-Author can accept or reject the team invite and proceed with assignment submission. &lt;br /&gt;
&lt;br /&gt;
4. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131284</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131284"/>
		<updated>2019-12-16T23:56:34Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Task to be Accomplished */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be shown on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link, username and temporary password.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Author of the assignment will use this URL to create the team and do conference paper submission. If author does not have account already in expertiza, Author will be asked to create account.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and  working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases that author have expertiza account or author does not have expertiza account. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author expertiza account already exists, when Co-Author logs in expertiza, he or she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author does not exists then he/she will receive an email with login id and password and Expertiza web address on the email id, that was used by author to invite them. When Co-Author logs in with same email id or password, he/she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
3. After that Co-Author can accept or reject the team invite and proceed with assignment submission. &lt;br /&gt;
&lt;br /&gt;
4. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131283</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=131283"/>
		<updated>2019-12-16T23:52:26Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Existing Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share details of authors' names with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* When creating a conference type assignment, a link to join the conference will be show on the assignment page.&lt;br /&gt;
* Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.&lt;br /&gt;
* Author will be able to create a new team in &amp;quot;Your Team&amp;quot; section and can invite other Co-Authors to join the team.&lt;br /&gt;
* If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link on email id used by Author while inviting them.&lt;br /&gt;
* Once Co-Author sees the invite they can accept or reject it.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:OSS12.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Grubby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page ('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* Author of the assignment will use this URL to create the team and do conference paper submission. If author does not have account already in expertiza, Author will be asked to create account.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and  working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. When Author clicks on joining link, there could be two cases that author have expertiza account or author does not have expertiza account. &lt;br /&gt;
&lt;br /&gt;
*If Author already has an account he will be able to view the assignment assigned to him and a default team.&lt;br /&gt;
*If Author does not have expertiza account, he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password. &lt;br /&gt;
&lt;br /&gt;
3. After Author logs in, he/she can navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author. &lt;br /&gt;
&lt;br /&gt;
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. If Co-Author expertiza account already exists, when Co-Author logs in expertiza, he or she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
2. If Co-Author does not exists then he/she will receive an email with login id and password and Expertiza web address on the email id, that was used by author to invite them. When Co-Author logs in with same email id or password, he/she will be able to see conference assignment in homepage and team invite in &amp;quot;Your Team&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
3. After that Co-Author can accept or reject the team invite and proceed with assignment submission. &lt;br /&gt;
&lt;br /&gt;
4. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is  'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_g.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129503</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129503"/>
		<updated>2019-11-16T04:58:57Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Database Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference_type_assignment' in 'Assignment' table with default value 0, and value = 1 if the assignment is of 'conference' type.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129502</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129502"/>
		<updated>2019-11-16T04:58:49Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Database Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference_type_assignment' in 'Assignment' table with default value 0, and value = 1 if the assignment is of 'conference' type.&lt;br /&gt;
This will work as a flag for all our functionalities in this project.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129501</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129501"/>
		<updated>2019-11-16T04:58:14Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Database Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of this project, the change in the database would be addition of a new column: 'is_conference_type_assignment' in 'Assignment' table with default value 0, and value = 1 if the assignment is of 'conference' type.&lt;br /&gt;
This will work as a flag for all our functionality in this project.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129500</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129500"/>
		<updated>2019-11-16T04:57:32Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Database Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
As part of our change, the change in the database would be addition of a new column: 'is_conference_type_assignment' with default value 0, and value = 1 if the assignment is of 'conference' type.&lt;br /&gt;
This will work as a flag for all our functionality in this project.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129497</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129497"/>
		<updated>2019-11-16T04:40:05Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Scenario 1: Creating student type user from controller by bypassing admin approval */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
There are no database changes as per the current design.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129495</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129495"/>
		<updated>2019-11-16T04:37:41Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Scenario 1: Creating student type user from controller by bypassing admin approval */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
There are no database changes as per the current design.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Positive test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
*Negative test case to check author not able to login after account creation&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129493</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129493"/>
		<updated>2019-11-16T04:36:16Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Database Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
There are no database changes as per the current design.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Positive test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
*Negative test case to check author not able to login after account creation&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129491</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129491"/>
		<updated>2019-11-16T04:35:31Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Changes for Conference's authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
7. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Database Changes===&lt;br /&gt;
There are no database changes as per the current design&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
[[Image:Design_pic.png]]&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
&lt;br /&gt;
Please find the below plan to test the functionality&lt;br /&gt;
&lt;br /&gt;
=== RSpec Tests ===&lt;br /&gt;
Please find below RSpec Test cases for this feature&lt;br /&gt;
&lt;br /&gt;
====Scenario 1: Creating student type user from controller by bypassing admin approval ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author should be able to create an account and this account doesn't require approval from admin.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Positive test case to check if author is able to to create and login into a new account without admin approval&lt;br /&gt;
*Negative test case to check author not able to login after account creation&lt;br /&gt;
&lt;br /&gt;
====Scenario 2: Author/Co-author after creating an account is able to access conference type assignment====&lt;br /&gt;
After Author has created an account, he/she should be able to access the conference type account.&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Co-author is assigned to conference type assignment and able to access it&lt;br /&gt;
*Test case to check if Author has been added to default team&lt;br /&gt;
*Test case to check if Co-author is added to Author's team&lt;br /&gt;
&lt;br /&gt;
====Scenario 3: Conference type assignment being created ====&lt;br /&gt;
Instructor should be able to create conference type assignment&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Conference type assignment has been created&lt;br /&gt;
&lt;br /&gt;
====Scenario 4: Author/Co-author should be able to see assignment if they already have an account ====&lt;br /&gt;
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page&lt;br /&gt;
&lt;br /&gt;
Files associated with this functionality:&lt;br /&gt;
#users_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
Following tests will be performed to verify whether the functionality is working as desired.&lt;br /&gt;
*Test case to check if Author/Co-author already have an account&lt;br /&gt;
*Test case to validate if  Author/Co-author can see assignment in their assignment page if they already have an account&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Github Repository for Expertiza]&lt;br /&gt;
# [http://wiki.expertiza.ncsu.edu/index.php/Documentation_on_Database_Tables Expertiza Documentation on Database Tables]&lt;br /&gt;
# [https://guides.rubyonrails.org/api_app.html Rails Guide Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129160</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129160"/>
		<updated>2019-11-12T04:03:52Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Changes for Conference's co-authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exist, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which will not require approval from instructor for account activation.&lt;br /&gt;
&lt;br /&gt;
2. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129151</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129151"/>
		<updated>2019-11-12T03:56:58Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Changes for Conference's authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and a team for this assignment, instructor will be able to see a URL which will be shared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view the conference type assignment and his default team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create author account with role as student. This account will not require any approval from instructor to activation.&lt;br /&gt;
&lt;br /&gt;
3. After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
4. Author can login in and navigate to '''assignment -&amp;gt; Your Team''' and invite co-authors into his team for working on the submission.&lt;br /&gt;
&lt;br /&gt;
5. Adding co-authors has following two cases - either the co-author's expertiza account already exists or a new user will be created otherwise in a similar way in which the author's account is created.&lt;br /&gt;
&lt;br /&gt;
6. Author can provide email id of co-authors in invite list of “Your Team” and will be able to view a shareable URL on page '''student_teams/view?student_id={id}''', which will be shared by author to his team mates to join this team.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's co-authors===&lt;br /&gt;
&lt;br /&gt;
1. When a co-author click on the URL shared by author to join his team&lt;br /&gt;
&lt;br /&gt;
* If co-author already has an account, he will be asked to login and will be able to view his team and assignment.&lt;br /&gt;
* If co-author does not exists, he will be redirected to page '''/users/request_new?role=Student'''. On this page all the details required to create a new user will be entered and a student account will be created which not require approval from instructor to activate account.&lt;br /&gt;
&lt;br /&gt;
2. Co-authors email will be verified while creating student account to validate if co-author is same person which author intended to add on his team.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129116</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129116"/>
		<updated>2019-11-12T03:38:56Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Changes for Conference's authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page('''app/views/assignments/edit/_general.html''')&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
1. After instructor has created new assignment and ateam for this assignment, instructor will be able to see a URL which will beshared by him with potential authors so that they can use their existing expertiza accounts or create new accounts to add submissions to the assignment. Creation of new account willnot require approval from instructor/admin. URL will be visible on page '''/assignments/{id}/edit '''.&lt;br /&gt;
&lt;br /&gt;
2. If Author already has an account he will be able to view assignment and his team. If Author account does not exists he will be redirect to page '''/users/request_new?role=Student'''.  On this page author can input all the required details to create Author account with role as student. This account will not require any approval from instructor to activate account.&lt;br /&gt;
&lt;br /&gt;
3.After Author account is created, the author can add co-authors to this assignments.&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129105</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129105"/>
		<updated>2019-11-12T03:30:25Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Creating The conference type assignment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
&lt;br /&gt;
===Existing Solution===&lt;br /&gt;
&lt;br /&gt;
===Proposed Solution===&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
1. Instructor logs in with his credentials.&lt;br /&gt;
&lt;br /&gt;
2. Instructor creates an assignment by checking a new check box - “Is conference style assignment”, to mark the assignment to be of conference type.&lt;br /&gt;
&lt;br /&gt;
* This checkbox will be introduced in the Assignment’s edit page(“app/views/assignments/edit/_general.html”)&lt;br /&gt;
&lt;br /&gt;
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.&lt;br /&gt;
&lt;br /&gt;
* If the student does not have an expertiza account, he/she will be asked to create an account and will not be having a need to get it authorized from the admin as only those people will be able to create an account in expertiza with whom the link is shared.&lt;br /&gt;
&lt;br /&gt;
The usage of the url and it’s working will be discussed in the next part.&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the Author would be performing to create an account:&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129079</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129079"/>
		<updated>2019-11-12T03:20:01Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Creating The conference type assignment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129074</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129074"/>
		<updated>2019-11-12T03:16:29Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:SequenceDiagram.png]]&lt;br /&gt;
&lt;br /&gt;
==Design - The Gruby Details==&lt;br /&gt;
&lt;br /&gt;
===Creating The conference type assignment===&lt;br /&gt;
&lt;br /&gt;
===Changes for Conference's authors===&lt;br /&gt;
&lt;br /&gt;
===Files to be changed===&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129055</id>
		<title>CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%E2%80%9Dassignment%E2%80%9D_Design&amp;diff=129055"/>
		<updated>2019-11-12T03:10:17Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a description of the Expertiza based OSS project. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same.&lt;br /&gt;
The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.&lt;br /&gt;
&lt;br /&gt;
==Task to be Accomplished==&lt;br /&gt;
* Instructor should be able to create new link for Authors to join the Conference Assignments&lt;br /&gt;
* Author should be able to create account by clicking on the link.   If author doesnt have an account&lt;br /&gt;
* Author should be assigned to a newly created team and should be able to create a link for co-authors to join the team. &lt;br /&gt;
* Co-Authors on clicking on link should be able to join  author's team and should be able to submit work for the assignment.&lt;br /&gt;
&lt;br /&gt;
==Sequence Diagram==&lt;br /&gt;
[[File:Sequence.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Teammates==&lt;br /&gt;
&lt;br /&gt;
Mentor - Prof. Edward Gehringer&lt;br /&gt;
&lt;br /&gt;
* Sameer Adhikari (sadhika2)&lt;br /&gt;
* Gurman Singh (gsingh23)&lt;br /&gt;
* Garima Garima (ggarima)&lt;br /&gt;
* Bharat Bhardwaj (bbhardw)&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127059</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127059"/>
		<updated>2019-11-05T00:33:07Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Issue 2: Instructors can make changes to each others’ rubrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded. Currently, the homepage shows 3 tabs: Courses, Assignments and Questionnaires. Suppose a user clicks on the &amp;quot;courses&amp;quot; tab and then from the &amp;quot;Manage Content Tab&amp;quot; -&amp;gt; &amp;quot;Questionnaires&amp;quot;, clicks on any of the options, then it will redirect to the same page and not the one which was selected. This needs to be fixed such that upon click, it opens up the corresponding rubric page with that particular rubric section expanded and also the respective tab (courses/assignments/questionnaires) must be highlighted. &lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab under 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx'''&lt;br /&gt;
- Created &amp;quot;ComponentDidMount&amp;quot; method under this script file which is a react lifecycle function and this is invoked immediately after a component is inserted into the tree. The setState method sets the expanded attribute to true for expanding the relative grid of the rubric. This method will trigger an extra rendering but it will happen before the browser updates the screen. This function will help determine which sub-menu item is selected and expands the corresponding rubric by updating the state of the table row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     componentDidMount: function() {&lt;br /&gt;
          rubBuffer = [&amp;quot;Review&amp;quot;, &amp;quot;Metareview&amp;quot;, &amp;quot;Author Feedback&amp;quot;, &amp;quot;Teammate Review&amp;quot;, &amp;quot;Assignment Survey&amp;quot;, &amp;quot;Global Survey&amp;quot;, &amp;quot;Course Survey&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
          selMenuItem = document.getElementById(&amp;quot;tree_display&amp;quot;).getAttribute(&amp;quot;data-menu-item&amp;quot;);&lt;br /&gt;
          selMenuItemInd = rubBuffer.indexOf(selMenuItem);&lt;br /&gt;
&lt;br /&gt;
          if(rubBuffer[selMenuItemInd] === this.props.name) {&lt;br /&gt;
              if (selMenuItemInd !== -1) {&lt;br /&gt;
                  this.setState({&lt;br /&gt;
                      expanded: true&lt;br /&gt;
                  }, function () {&lt;br /&gt;
                      this.props.rowClicked(this.props.id, true, this.props.newParams)&lt;br /&gt;
                  })&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
- This is the main controller which calls the respective tab upon selection. The 'last_open_tab' holds on the tab clicked under 'Questionnaire'. For every goto_controller call, the tab number sent along in the parameter refers to the respective order of tabs that appear on the homepage.&lt;br /&gt;
The changes in the goto_controller will allow the function to keep a track of which tab was last opened by using a new argument i.e. last_open_tab and setting its values to the integer value corresponding to the relative ordering of the tabs on the page . For e.g., if the Questionnaires tab is clicked then a value of 3 will be passed as a parameter since the position of the Questionnaires tab is 3 on the page.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def goto_controller(name_parameter, prevTab)&lt;br /&gt;
    node_object = TreeFolder.find_by(name: name_parameter)&lt;br /&gt;
    session[:root] = FolderNode.find_by(node_object_id: node_object.id).id&lt;br /&gt;
    if(prevTab!=nil)&lt;br /&gt;
      session[:last_open_tab] = prevTab&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'tree_display', action: 'list', currCtlr: name_parameter&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def goto_questionnaires&lt;br /&gt;
    goto_controller('Questionnaires','3')&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ScreenCast==== &lt;br /&gt;
&lt;br /&gt;
Here is a screencast of the tested functionality after the fix: [https://drive.google.com/open?id=1E2qDwcVvJBi_ybNdIqx6hykDmYVWqu6Y Fixed Issue #1186]&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The problem which we are trying to resolve arises because of the fact that all the rubrics, questionnaires, surveys, etc have been made available for all the instructors to view. Because there was no limitation the code uses the same to code to render lists across the different users. This raises an issue that one instructor can if they want to edit other instructor's surveys when they were only supposed to view them&lt;br /&gt;
Currently, if a non-authorized user clicks on edit he is redirected to the same page with an error. A better approach would be to not show the edit button at all and thus we have fixed this user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx:'''&lt;br /&gt;
- This code wait for the page to load and then try to find the user id embedded in the HTML sent from the backend. It then sets this id in a variable available across the app using javascript.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let app_variables = {&lt;br /&gt;
  currentUserId: null&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('load', e =&amp;gt; {&lt;br /&gt;
  let treeDisplayDiv = document.querySelector('#tree_display');&lt;br /&gt;
  if (treeDisplayDiv) {&lt;br /&gt;
    app_variables.currentUserId = document.querySelector('#tree_display').dataset.userId;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then pass the instructor's id coming from the API into the Component as props so that it is accessible inside out component for validation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The check which is helping us achieve this is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(app_variables.currentUserId == null || this.props.instructor_id == app_variables.currentUserId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For API changes&amp;lt;br&amp;gt;&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;instructor_id&amp;quot; =&amp;gt; child.get_instructor_id,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/models/questionnaire_node.rb'''&lt;br /&gt;
&lt;br /&gt;
This function added to the model which simply returns instructor_id associated with that particular questionnaire or survey.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def get_instructor_id&lt;br /&gt;
    Questionnaire.find_by(id: self.node_object_id).try(:instructor_id)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deployment==&lt;br /&gt;
This application with the mentioned changes have been deployed to the following URL: [http://152.46.19.166:8080 http://152.46.19.166:8080]&lt;br /&gt;
* We have used VCL for deployment.&lt;br /&gt;
* Username: instructor6&lt;br /&gt;
* Password: password&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
Since both of the issues under this project were UI related, and none of the business related code was put in/ changed in the back-end, no new Unit-Tests were required for Testing the fixes.&lt;br /&gt;
Following are the individual Test Plans for verifying the changes done in this project.&lt;br /&gt;
&lt;br /&gt;
===Issue 1: Inappropriate redirection when Managing Questionnaire types===&lt;br /&gt;
Follow the below steps to Verify the fix  for this issue:&lt;br /&gt;
&lt;br /&gt;
'''Test Case 1'''&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Questionnaires' tab active and 'Teammate Review' rubric expanded.&lt;br /&gt;
&lt;br /&gt;
'''Test Case 2 (Regression)'''&lt;br /&gt;
&lt;br /&gt;
2.1 In continuation with the Test Case 1, when you are on 'Manage Content' section's 'Questionnaire' tab, click on the 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
2.2 Move away from 'Manage Content' section by clicking on any of the menu Items, lets click on 'Profile' Menu Item here.&lt;br /&gt;
&lt;br /&gt;
2.2 After 'Profile' section is loaded, Go back to the 'Manage Content' section by clicking on the 'Manage...' menu item.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Assignments' tab active since this was the last active tab before leaving this section.&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Instructors can make changes to each others’ rubrics===&lt;br /&gt;
&lt;br /&gt;
Follow the below steps to Verify the fix for this issue:&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
1.4 Scan through the list in the rubric.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': Each individual item should have Action icons (representing 'Edit','Delete','Copy','View'). But the 'Edit' action item should not be visible for all the items, only the items belonging to 'instructor6' should have the 'Edit' Option under them.&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;br /&gt;
#[https://reactjs.org/docs/react-component.html ReactJS Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127058</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127058"/>
		<updated>2019-11-05T00:30:40Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Issue 2: Instructors can make changes to each others’ rubrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded. Currently, the homepage shows 3 tabs: Courses, Assignments and Questionnaires. Suppose a user clicks on the &amp;quot;courses&amp;quot; tab and then from the &amp;quot;Manage Content Tab&amp;quot; -&amp;gt; &amp;quot;Questionnaires&amp;quot;, clicks on any of the options, then it will redirect to the same page and not the one which was selected. This needs to be fixed such that upon click, it opens up the corresponding rubric page with that particular rubric section expanded and also the respective tab (courses/assignments/questionnaires) must be highlighted. &lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab under 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx'''&lt;br /&gt;
- Created &amp;quot;ComponentDidMount&amp;quot; method under this script file which is a react lifecycle function and this is invoked immediately after a component is inserted into the tree. The setState method sets the expanded attribute to true for expanding the relative grid of the rubric. This method will trigger an extra rendering but it will happen before the browser updates the screen. This function will help determine which sub-menu item is selected and expands the corresponding rubric by updating the state of the table row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     componentDidMount: function() {&lt;br /&gt;
          rubBuffer = [&amp;quot;Review&amp;quot;, &amp;quot;Metareview&amp;quot;, &amp;quot;Author Feedback&amp;quot;, &amp;quot;Teammate Review&amp;quot;, &amp;quot;Assignment Survey&amp;quot;, &amp;quot;Global Survey&amp;quot;, &amp;quot;Course Survey&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
          selMenuItem = document.getElementById(&amp;quot;tree_display&amp;quot;).getAttribute(&amp;quot;data-menu-item&amp;quot;);&lt;br /&gt;
          selMenuItemInd = rubBuffer.indexOf(selMenuItem);&lt;br /&gt;
&lt;br /&gt;
          if(rubBuffer[selMenuItemInd] === this.props.name) {&lt;br /&gt;
              if (selMenuItemInd !== -1) {&lt;br /&gt;
                  this.setState({&lt;br /&gt;
                      expanded: true&lt;br /&gt;
                  }, function () {&lt;br /&gt;
                      this.props.rowClicked(this.props.id, true, this.props.newParams)&lt;br /&gt;
                  })&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
- This is the main controller which calls the respective tab upon selection. The 'last_open_tab' holds on the tab clicked under 'Questionnaire'. For every goto_controller call, the tab number sent along in the parameter refers to the respective order of tabs that appear on the homepage.&lt;br /&gt;
The changes in the goto_controller will allow the function to keep a track of which tab was last opened by using a new argument i.e. last_open_tab and setting its values to the integer value corresponding to the relative ordering of the tabs on the page . For e.g., if the Questionnaires tab is clicked then a value of 3 will be passed as a parameter since the position of the Questionnaires tab is 3 on the page.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def goto_controller(name_parameter, prevTab)&lt;br /&gt;
    node_object = TreeFolder.find_by(name: name_parameter)&lt;br /&gt;
    session[:root] = FolderNode.find_by(node_object_id: node_object.id).id&lt;br /&gt;
    if(prevTab!=nil)&lt;br /&gt;
      session[:last_open_tab] = prevTab&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'tree_display', action: 'list', currCtlr: name_parameter&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def goto_questionnaires&lt;br /&gt;
    goto_controller('Questionnaires','3')&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ScreenCast==== &lt;br /&gt;
&lt;br /&gt;
Here is a screencast of the tested functionality after the fix: [https://drive.google.com/open?id=1E2qDwcVvJBi_ybNdIqx6hykDmYVWqu6Y Fixed Issue #1186]&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The problem which we are trying to resolve arises because of the fact that all the rubrics, questionnaires, surveys, etc have been made available for all the instructors to view. Because there was no limitation the code uses the same to code to render lists across the different users. This raises an issue that one instructor can if they want to edit other instructor's surveys when they were only supposed to view them&lt;br /&gt;
Currently, if a non-authorized user clicks on edit he is redirected to the same page with an error. A better approach would be to not show the edit button at all and thus we have fixed this user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx:'''&lt;br /&gt;
- This code wait for the page to load and then try to find the user id embedded in the HTML sent from the backend. It then sets this id in a variable available across the app using javascript.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let app_variables = {&lt;br /&gt;
  currentUserId: null&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('load', e =&amp;gt; {&lt;br /&gt;
  let treeDisplayDiv = document.querySelector('#tree_display');&lt;br /&gt;
  if (treeDisplayDiv) {&lt;br /&gt;
    app_variables.currentUserId = document.querySelector('#tree_display').dataset.userId;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then pass the instructor's id coming from the API into the Component as props so that it is accessible inside out component for validation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The check which is helping us achieve this is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(app_variables.currentUserId == null || this.props.instructor_id == app_variables.currentUserId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For API changes&amp;lt;br&amp;gt;&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;instructor_id&amp;quot; =&amp;gt; child.get_instructor_id,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/models/questionnaire_node.rb'''&lt;br /&gt;
&lt;br /&gt;
This function added to the model which simply returns instructor_id associated with that particular questionnaire or survey.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def get_instructor_id&lt;br /&gt;
    Questionnaire.find_by(id: self.node_object_id).try(:instructor_id)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deployment==&lt;br /&gt;
This application with the mentioned changes have been deployed to the following URL: [http://152.46.19.166:8080 http://152.46.19.166:8080]&lt;br /&gt;
* We have used VCL for deployment.&lt;br /&gt;
* Username: instructor6&lt;br /&gt;
* Password: password&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
Since both of the issues under this project were UI related, and none of the business related code was put in/ changed in the back-end, no new Unit-Tests were required for Testing the fixes.&lt;br /&gt;
Following are the individual Test Plans for verifying the changes done in this project.&lt;br /&gt;
&lt;br /&gt;
===Issue 1: Inappropriate redirection when Managing Questionnaire types===&lt;br /&gt;
Follow the below steps to Verify the fix  for this issue:&lt;br /&gt;
&lt;br /&gt;
'''Test Case 1'''&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Questionnaires' tab active and 'Teammate Review' rubric expanded.&lt;br /&gt;
&lt;br /&gt;
'''Test Case 2 (Regression)'''&lt;br /&gt;
&lt;br /&gt;
2.1 In continuation with the Test Case 1, when you are on 'Manage Content' section's 'Questionnaire' tab, click on the 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
2.2 Move away from 'Manage Content' section by clicking on any of the menu Items, lets click on 'Profile' Menu Item here.&lt;br /&gt;
&lt;br /&gt;
2.2 After 'Profile' section is loaded, Go back to the 'Manage Content' section by clicking on the 'Manage...' menu item.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Assignments' tab active since this was the last active tab before leaving this section.&lt;br /&gt;
&lt;br /&gt;
===Issue 2: Instructors can make changes to each others’ rubrics===&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
1.4 Scan through the list in the rubric.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': Each individual item should have Action icons (representing 'Edit','Delete','Copy','View'). But the 'Edit' action item should not be visible for all the items, only the items belonging to 'instructor6' should have the 'Edit' Option under them.&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;br /&gt;
#[https://reactjs.org/docs/react-component.html ReactJS Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127057</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127057"/>
		<updated>2019-11-05T00:30:24Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Issue 1: Inappropriate redirection when Managing Questionnaire types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded. Currently, the homepage shows 3 tabs: Courses, Assignments and Questionnaires. Suppose a user clicks on the &amp;quot;courses&amp;quot; tab and then from the &amp;quot;Manage Content Tab&amp;quot; -&amp;gt; &amp;quot;Questionnaires&amp;quot;, clicks on any of the options, then it will redirect to the same page and not the one which was selected. This needs to be fixed such that upon click, it opens up the corresponding rubric page with that particular rubric section expanded and also the respective tab (courses/assignments/questionnaires) must be highlighted. &lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab under 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx'''&lt;br /&gt;
- Created &amp;quot;ComponentDidMount&amp;quot; method under this script file which is a react lifecycle function and this is invoked immediately after a component is inserted into the tree. The setState method sets the expanded attribute to true for expanding the relative grid of the rubric. This method will trigger an extra rendering but it will happen before the browser updates the screen. This function will help determine which sub-menu item is selected and expands the corresponding rubric by updating the state of the table row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     componentDidMount: function() {&lt;br /&gt;
          rubBuffer = [&amp;quot;Review&amp;quot;, &amp;quot;Metareview&amp;quot;, &amp;quot;Author Feedback&amp;quot;, &amp;quot;Teammate Review&amp;quot;, &amp;quot;Assignment Survey&amp;quot;, &amp;quot;Global Survey&amp;quot;, &amp;quot;Course Survey&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
          selMenuItem = document.getElementById(&amp;quot;tree_display&amp;quot;).getAttribute(&amp;quot;data-menu-item&amp;quot;);&lt;br /&gt;
          selMenuItemInd = rubBuffer.indexOf(selMenuItem);&lt;br /&gt;
&lt;br /&gt;
          if(rubBuffer[selMenuItemInd] === this.props.name) {&lt;br /&gt;
              if (selMenuItemInd !== -1) {&lt;br /&gt;
                  this.setState({&lt;br /&gt;
                      expanded: true&lt;br /&gt;
                  }, function () {&lt;br /&gt;
                      this.props.rowClicked(this.props.id, true, this.props.newParams)&lt;br /&gt;
                  })&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
- This is the main controller which calls the respective tab upon selection. The 'last_open_tab' holds on the tab clicked under 'Questionnaire'. For every goto_controller call, the tab number sent along in the parameter refers to the respective order of tabs that appear on the homepage.&lt;br /&gt;
The changes in the goto_controller will allow the function to keep a track of which tab was last opened by using a new argument i.e. last_open_tab and setting its values to the integer value corresponding to the relative ordering of the tabs on the page . For e.g., if the Questionnaires tab is clicked then a value of 3 will be passed as a parameter since the position of the Questionnaires tab is 3 on the page.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def goto_controller(name_parameter, prevTab)&lt;br /&gt;
    node_object = TreeFolder.find_by(name: name_parameter)&lt;br /&gt;
    session[:root] = FolderNode.find_by(node_object_id: node_object.id).id&lt;br /&gt;
    if(prevTab!=nil)&lt;br /&gt;
      session[:last_open_tab] = prevTab&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'tree_display', action: 'list', currCtlr: name_parameter&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def goto_questionnaires&lt;br /&gt;
    goto_controller('Questionnaires','3')&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ScreenCast==== &lt;br /&gt;
&lt;br /&gt;
Here is a screencast of the tested functionality after the fix: [https://drive.google.com/open?id=1E2qDwcVvJBi_ybNdIqx6hykDmYVWqu6Y Fixed Issue #1186]&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The problem which we are trying to resolve arises because of the fact that all the rubrics, questionnaires, surveys, etc have been made available for all the instructors to view. Because there was no limitation the code uses the same to code to render lists across the different users. This raises an issue that one instructor can if they want to edit other instructor's surveys when they were only supposed to view them&lt;br /&gt;
Currently, if a non-authorized user clicks on edit he is redirected to the same page with an error. A better approach would be to not show the edit button at all and thus we have fixed this user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx:'''&lt;br /&gt;
- This code wait for the page to load and then try to find the user id embedded in the HTML sent from the backend. It then sets this id in a variable available across the app using javascript.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let app_variables = {&lt;br /&gt;
  currentUserId: null&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('load', e =&amp;gt; {&lt;br /&gt;
  let treeDisplayDiv = document.querySelector('#tree_display');&lt;br /&gt;
  if (treeDisplayDiv) {&lt;br /&gt;
    app_variables.currentUserId = document.querySelector('#tree_display').dataset.userId;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then pass the instructor's id coming from the API into the Component as props so that it is accessible inside out component for validation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The check which is helping us achieve this is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(app_variables.currentUserId == null || this.props.instructor_id == app_variables.currentUserId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For API changes&amp;lt;br&amp;gt;&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;instructor_id&amp;quot; =&amp;gt; child.get_instructor_id,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/models/questionnaire_node.rb'''&lt;br /&gt;
&lt;br /&gt;
This function added to the model which simply returns instructor_id associated with that particular questionnaire or survey.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def get_instructor_id&lt;br /&gt;
    Questionnaire.find_by(id: self.node_object_id).try(:instructor_id)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deployment==&lt;br /&gt;
This application with the mentioned changes have been deployed to the following URL: [http://152.46.19.166:8080 http://152.46.19.166:8080]&lt;br /&gt;
* We have used VCL for deployment.&lt;br /&gt;
* Username: instructor6&lt;br /&gt;
* Password: password&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
Since both of the issues under this project were UI related, and none of the business related code was put in/ changed in the back-end, no new Unit-Tests were required for Testing the fixes.&lt;br /&gt;
Following are the individual Test Plans for verifying the changes done in this project.&lt;br /&gt;
&lt;br /&gt;
===Issue 1: Inappropriate redirection when Managing Questionnaire types===&lt;br /&gt;
Follow the below steps to Verify the fix  for this issue:&lt;br /&gt;
&lt;br /&gt;
'''Test Case 1'''&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Questionnaires' tab active and 'Teammate Review' rubric expanded.&lt;br /&gt;
&lt;br /&gt;
'''Test Case 2 (Regression)'''&lt;br /&gt;
&lt;br /&gt;
2.1 In continuation with the Test Case 1, when you are on 'Manage Content' section's 'Questionnaire' tab, click on the 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
2.2 Move away from 'Manage Content' section by clicking on any of the menu Items, lets click on 'Profile' Menu Item here.&lt;br /&gt;
&lt;br /&gt;
2.2 After 'Profile' section is loaded, Go back to the 'Manage Content' section by clicking on the 'Manage...' menu item.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Assignments' tab active since this was the last active tab before leaving this section.&lt;br /&gt;
&lt;br /&gt;
==Issue 2: Instructors can make changes to each others’ rubrics==&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
1.4 Scan through the list in the rubric.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': Each individual item should have Action icons (representing 'Edit','Delete','Copy','View'). But the 'Edit' action item should not be visible for all the items, only the items belonging to 'instructor6' should have the 'Edit' Option under them.&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;br /&gt;
#[https://reactjs.org/docs/react-component.html ReactJS Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127056</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127056"/>
		<updated>2019-11-05T00:30:05Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded. Currently, the homepage shows 3 tabs: Courses, Assignments and Questionnaires. Suppose a user clicks on the &amp;quot;courses&amp;quot; tab and then from the &amp;quot;Manage Content Tab&amp;quot; -&amp;gt; &amp;quot;Questionnaires&amp;quot;, clicks on any of the options, then it will redirect to the same page and not the one which was selected. This needs to be fixed such that upon click, it opens up the corresponding rubric page with that particular rubric section expanded and also the respective tab (courses/assignments/questionnaires) must be highlighted. &lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab under 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx'''&lt;br /&gt;
- Created &amp;quot;ComponentDidMount&amp;quot; method under this script file which is a react lifecycle function and this is invoked immediately after a component is inserted into the tree. The setState method sets the expanded attribute to true for expanding the relative grid of the rubric. This method will trigger an extra rendering but it will happen before the browser updates the screen. This function will help determine which sub-menu item is selected and expands the corresponding rubric by updating the state of the table row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     componentDidMount: function() {&lt;br /&gt;
          rubBuffer = [&amp;quot;Review&amp;quot;, &amp;quot;Metareview&amp;quot;, &amp;quot;Author Feedback&amp;quot;, &amp;quot;Teammate Review&amp;quot;, &amp;quot;Assignment Survey&amp;quot;, &amp;quot;Global Survey&amp;quot;, &amp;quot;Course Survey&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
          selMenuItem = document.getElementById(&amp;quot;tree_display&amp;quot;).getAttribute(&amp;quot;data-menu-item&amp;quot;);&lt;br /&gt;
          selMenuItemInd = rubBuffer.indexOf(selMenuItem);&lt;br /&gt;
&lt;br /&gt;
          if(rubBuffer[selMenuItemInd] === this.props.name) {&lt;br /&gt;
              if (selMenuItemInd !== -1) {&lt;br /&gt;
                  this.setState({&lt;br /&gt;
                      expanded: true&lt;br /&gt;
                  }, function () {&lt;br /&gt;
                      this.props.rowClicked(this.props.id, true, this.props.newParams)&lt;br /&gt;
                  })&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
- This is the main controller which calls the respective tab upon selection. The 'last_open_tab' holds on the tab clicked under 'Questionnaire'. For every goto_controller call, the tab number sent along in the parameter refers to the respective order of tabs that appear on the homepage.&lt;br /&gt;
The changes in the goto_controller will allow the function to keep a track of which tab was last opened by using a new argument i.e. last_open_tab and setting its values to the integer value corresponding to the relative ordering of the tabs on the page . For e.g., if the Questionnaires tab is clicked then a value of 3 will be passed as a parameter since the position of the Questionnaires tab is 3 on the page.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def goto_controller(name_parameter, prevTab)&lt;br /&gt;
    node_object = TreeFolder.find_by(name: name_parameter)&lt;br /&gt;
    session[:root] = FolderNode.find_by(node_object_id: node_object.id).id&lt;br /&gt;
    if(prevTab!=nil)&lt;br /&gt;
      session[:last_open_tab] = prevTab&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'tree_display', action: 'list', currCtlr: name_parameter&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def goto_questionnaires&lt;br /&gt;
    goto_controller('Questionnaires','3')&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ScreenCast==== &lt;br /&gt;
&lt;br /&gt;
Here is a screencast of the tested functionality after the fix: [https://drive.google.com/open?id=1E2qDwcVvJBi_ybNdIqx6hykDmYVWqu6Y Fixed Issue #1186]&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The problem which we are trying to resolve arises because of the fact that all the rubrics, questionnaires, surveys, etc have been made available for all the instructors to view. Because there was no limitation the code uses the same to code to render lists across the different users. This raises an issue that one instructor can if they want to edit other instructor's surveys when they were only supposed to view them&lt;br /&gt;
Currently, if a non-authorized user clicks on edit he is redirected to the same page with an error. A better approach would be to not show the edit button at all and thus we have fixed this user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx:'''&lt;br /&gt;
- This code wait for the page to load and then try to find the user id embedded in the HTML sent from the backend. It then sets this id in a variable available across the app using javascript.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let app_variables = {&lt;br /&gt;
  currentUserId: null&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('load', e =&amp;gt; {&lt;br /&gt;
  let treeDisplayDiv = document.querySelector('#tree_display');&lt;br /&gt;
  if (treeDisplayDiv) {&lt;br /&gt;
    app_variables.currentUserId = document.querySelector('#tree_display').dataset.userId;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then pass the instructor's id coming from the API into the Component as props so that it is accessible inside out component for validation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The check which is helping us achieve this is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(app_variables.currentUserId == null || this.props.instructor_id == app_variables.currentUserId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For API changes&amp;lt;br&amp;gt;&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;instructor_id&amp;quot; =&amp;gt; child.get_instructor_id,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/models/questionnaire_node.rb'''&lt;br /&gt;
&lt;br /&gt;
This function added to the model which simply returns instructor_id associated with that particular questionnaire or survey.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def get_instructor_id&lt;br /&gt;
    Questionnaire.find_by(id: self.node_object_id).try(:instructor_id)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deployment==&lt;br /&gt;
This application with the mentioned changes have been deployed to the following URL: [http://152.46.19.166:8080 http://152.46.19.166:8080]&lt;br /&gt;
* We have used VCL for deployment.&lt;br /&gt;
* Username: instructor6&lt;br /&gt;
* Password: password&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
Since both of the issues under this project were UI related, and none of the business related code was put in/ changed in the back-end, no new Unit-Tests were required for Testing the fixes.&lt;br /&gt;
Following are the individual Test Plans for verifying the changes done in this project.&lt;br /&gt;
&lt;br /&gt;
==Issue 1: Inappropriate redirection when Managing Questionnaire types==&lt;br /&gt;
Follow the below steps to Verify the fix  for this issue:&lt;br /&gt;
&lt;br /&gt;
'''Test Case 1'''&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Questionnaires' tab active and 'Teammate Review' rubric expanded.&lt;br /&gt;
&lt;br /&gt;
'''Test Case 2 (Regression)'''&lt;br /&gt;
&lt;br /&gt;
2.1 In continuation with the Test Case 1, when you are on 'Manage Content' section's 'Questionnaire' tab, click on the 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
2.2 Move away from 'Manage Content' section by clicking on any of the menu Items, lets click on 'Profile' Menu Item here.&lt;br /&gt;
&lt;br /&gt;
2.2 After 'Profile' section is loaded, Go back to the 'Manage Content' section by clicking on the 'Manage...' menu item.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Assignments' tab active since this was the last active tab before leaving this section.&lt;br /&gt;
&lt;br /&gt;
==Issue 2: Instructors can make changes to each others’ rubrics==&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
1.4 Scan through the list in the rubric.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': Each individual item should have Action icons (representing 'Edit','Delete','Copy','View'). But the 'Edit' action item should not be visible for all the items, only the items belonging to 'instructor6' should have the 'Edit' Option under them.&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;br /&gt;
#[https://reactjs.org/docs/react-component.html ReactJS Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127055</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127055"/>
		<updated>2019-11-05T00:29:23Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded. Currently, the homepage shows 3 tabs: Courses, Assignments and Questionnaires. Suppose a user clicks on the &amp;quot;courses&amp;quot; tab and then from the &amp;quot;Manage Content Tab&amp;quot; -&amp;gt; &amp;quot;Questionnaires&amp;quot;, clicks on any of the options, then it will redirect to the same page and not the one which was selected. This needs to be fixed such that upon click, it opens up the corresponding rubric page with that particular rubric section expanded and also the respective tab (courses/assignments/questionnaires) must be highlighted. &lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab under 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx'''&lt;br /&gt;
- Created &amp;quot;ComponentDidMount&amp;quot; method under this script file which is a react lifecycle function and this is invoked immediately after a component is inserted into the tree. The setState method sets the expanded attribute to true for expanding the relative grid of the rubric. This method will trigger an extra rendering but it will happen before the browser updates the screen. This function will help determine which sub-menu item is selected and expands the corresponding rubric by updating the state of the table row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     componentDidMount: function() {&lt;br /&gt;
          rubBuffer = [&amp;quot;Review&amp;quot;, &amp;quot;Metareview&amp;quot;, &amp;quot;Author Feedback&amp;quot;, &amp;quot;Teammate Review&amp;quot;, &amp;quot;Assignment Survey&amp;quot;, &amp;quot;Global Survey&amp;quot;, &amp;quot;Course Survey&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
          selMenuItem = document.getElementById(&amp;quot;tree_display&amp;quot;).getAttribute(&amp;quot;data-menu-item&amp;quot;);&lt;br /&gt;
          selMenuItemInd = rubBuffer.indexOf(selMenuItem);&lt;br /&gt;
&lt;br /&gt;
          if(rubBuffer[selMenuItemInd] === this.props.name) {&lt;br /&gt;
              if (selMenuItemInd !== -1) {&lt;br /&gt;
                  this.setState({&lt;br /&gt;
                      expanded: true&lt;br /&gt;
                  }, function () {&lt;br /&gt;
                      this.props.rowClicked(this.props.id, true, this.props.newParams)&lt;br /&gt;
                  })&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
- This is the main controller which calls the respective tab upon selection. The 'last_open_tab' holds on the tab clicked under 'Questionnaire'. For every goto_controller call, the tab number sent along in the parameter refers to the respective order of tabs that appear on the homepage.&lt;br /&gt;
The changes in the goto_controller will allow the function to keep a track of which tab was last opened by using a new argument i.e. last_open_tab and setting its values to the integer value corresponding to the relative ordering of the tabs on the page . For e.g., if the Questionnaires tab is clicked then a value of 3 will be passed as a parameter since the position of the Questionnaires tab is 3 on the page.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def goto_controller(name_parameter, prevTab)&lt;br /&gt;
    node_object = TreeFolder.find_by(name: name_parameter)&lt;br /&gt;
    session[:root] = FolderNode.find_by(node_object_id: node_object.id).id&lt;br /&gt;
    if(prevTab!=nil)&lt;br /&gt;
      session[:last_open_tab] = prevTab&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'tree_display', action: 'list', currCtlr: name_parameter&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def goto_questionnaires&lt;br /&gt;
    goto_controller('Questionnaires','3')&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ScreenCast==== &lt;br /&gt;
&lt;br /&gt;
Here is a screencast of the tested functionality after the fix: [https://drive.google.com/open?id=1E2qDwcVvJBi_ybNdIqx6hykDmYVWqu6Y Fixed Issue #1186]&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The problem which we are trying to resolve arises because of the fact that all the rubrics, questionnaires, surveys, etc have been made available for all the instructors to view. Because there was no limitation the code uses the same to code to render lists across the different users. This raises an issue that one instructor can if they want to edit other instructor's surveys when they were only supposed to view them&lt;br /&gt;
Currently, if a non-authorized user clicks on edit he is redirected to the same page with an error. A better approach would be to not show the edit button at all and thus we have fixed this user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx:'''&lt;br /&gt;
- This code wait for the page to load and then try to find the user id embedded in the HTML sent from the backend. It then sets this id in a variable available across the app using javascript.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let app_variables = {&lt;br /&gt;
  currentUserId: null&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('load', e =&amp;gt; {&lt;br /&gt;
  let treeDisplayDiv = document.querySelector('#tree_display');&lt;br /&gt;
  if (treeDisplayDiv) {&lt;br /&gt;
    app_variables.currentUserId = document.querySelector('#tree_display').dataset.userId;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then pass the instructor's id coming from the API into the Component as props so that it is accessible inside out component for validation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The check which is helping us achieve this is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(app_variables.currentUserId == null || this.props.instructor_id == app_variables.currentUserId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For API changes&amp;lt;br&amp;gt;&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;instructor_id&amp;quot; =&amp;gt; child.get_instructor_id,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/models/questionnaire_node.rb'''&lt;br /&gt;
&lt;br /&gt;
This function added to the model which simply returns instructor_id associated with that particular questionnaire or survey.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def get_instructor_id&lt;br /&gt;
    Questionnaire.find_by(id: self.node_object_id).try(:instructor_id)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deployment==&lt;br /&gt;
This application with the mentioned changes have been deployed to the following URL: [http://152.46.19.166:8080 http://152.46.19.166:8080]&lt;br /&gt;
* We have used VCL for deployment.&lt;br /&gt;
* Username: instructor6&lt;br /&gt;
* Password: password&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
Since both of the issues under this project were UI related, and none of the business related code was put in/ changed in the back-end, no new Unit-Tests were required for Testing the fixes.&lt;br /&gt;
Following are the individual Test Plans for verifying the changes done in this project.&lt;br /&gt;
&lt;br /&gt;
==Issue 1: Inappropriate redirection when Managing Questionnaire types==&lt;br /&gt;
Follow the below steps to Verify the fix  for this issue:&lt;br /&gt;
&lt;br /&gt;
'''Test Case 1'''&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Questionnaires' tab active and 'Teammate Review' rubric expanded.&lt;br /&gt;
&lt;br /&gt;
'''Test Case 2 (Regression)'''&lt;br /&gt;
&lt;br /&gt;
2.1 In continuation with the Test Case 1, when you are on 'Manage Content' section's 'Questionnaire' tab, click on the 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
2.2 Move away from 'Manage Content' section by clicking on any of the menu Items, lets click on 'Profile' Menu Item here.&lt;br /&gt;
&lt;br /&gt;
2.2 After 'Profile' section is loaded, Go back to the 'Manage Content' section by clicking on the 'Manage...' menu item.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': The 'Manage Content' page should be loaded with 'Assignments' tab active since this was the last active tab before leaving this section.&lt;br /&gt;
&lt;br /&gt;
==Issue 2: Instructors can make changes to each others’ rubrics==&lt;br /&gt;
&lt;br /&gt;
1.1 Open the Expertiza application.&lt;br /&gt;
&lt;br /&gt;
1.2 Login as an instructor(username:instructor6, password:password)&lt;br /&gt;
&lt;br /&gt;
1.3 In the Menu Items Goto: 'Manage...&amp;gt;Questionnaires&amp;gt;Team Review Rubrics' (Goto here means pointing your mouse to that particular option and the following the sub-options, the click only takes place at the last option, here at &amp;quot;Team Review Rubrics&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
1.4 Scan through the list in the rubric.&lt;br /&gt;
&lt;br /&gt;
''Expectation'': Each individual item should have Action icons (representing 'Edit','Delete','Copy','View'). But the 'Edit' action item should not be visible for all the items, only the items belonging to 'instructor6' should have the 'Edit' Option under them.&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;br /&gt;
#[https://reactjs.org/docs/react-component.html ReactJS Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127041</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127041"/>
		<updated>2019-11-04T22:47:09Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: Undo revision 127040 by Gsingh23 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded. Currently, the homepage shows 3 tabs: Courses, Assignments and Questionnaires. Suppose a user clicks on the &amp;quot;courses&amp;quot; tab and then from the &amp;quot;Manage Content Tab&amp;quot; -&amp;gt; &amp;quot;Questionnaires&amp;quot;, clicks on any of the options, then it will redirect to the same page and not the one which was selected. This needs to be fixed such that upon click, it opens up the corresponding rubric page with that particular rubric section expanded and also the respective tab (courses/assignments/questionnaires) must be highlighted. &lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab under 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx'''&lt;br /&gt;
- Created &amp;quot;ComponentDidMount&amp;quot; method under this script file which is a react lifecycle function and this is invoked immediately after a component is inserted into the tree. The setState method sets the expanded attribute to true for expanding the relative grid of the rubric. This method will trigger an extra rendering but it will happen before the browser updates the screen. This function will help determine which sub-menu item is selected and expands the corresponding rubric by updating the state of the table row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     componentDidMount: function() {&lt;br /&gt;
          rubBuffer = [&amp;quot;Review&amp;quot;, &amp;quot;Metareview&amp;quot;, &amp;quot;Author Feedback&amp;quot;, &amp;quot;Teammate Review&amp;quot;, &amp;quot;Assignment Survey&amp;quot;, &amp;quot;Global Survey&amp;quot;, &amp;quot;Course Survey&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
          selMenuItem = document.getElementById(&amp;quot;tree_display&amp;quot;).getAttribute(&amp;quot;data-menu-item&amp;quot;);&lt;br /&gt;
          selMenuItemInd = rubBuffer.indexOf(selMenuItem);&lt;br /&gt;
&lt;br /&gt;
          if(rubBuffer[selMenuItemInd] === this.props.name) {&lt;br /&gt;
              if (selMenuItemInd !== -1) {&lt;br /&gt;
                  this.setState({&lt;br /&gt;
                      expanded: true&lt;br /&gt;
                  }, function () {&lt;br /&gt;
                      this.props.rowClicked(this.props.id, true, this.props.newParams)&lt;br /&gt;
                  })&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
- This is the main controller which calls the respective tab upon selection. The 'last_open_tab' holds on the tab clicked under 'Questionnaire'. For every goto_controller call, the tab number sent along in the parameter refers to the respective order of tabs that appear on the homepage.&lt;br /&gt;
The changes in the goto_controller will allow the function to keep a track of which tab was last opened by using a new argument i.e. last_open_tab and setting its values to the integer value corresponding to the relative ordering of the tabs on the page . For e.g., if the Questionnaires tab is clicked then a value of 3 will be passed as a parameter since the position of the Questionnaires tab is 3 on the page.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def goto_controller(name_parameter, prevTab)&lt;br /&gt;
    node_object = TreeFolder.find_by(name: name_parameter)&lt;br /&gt;
    session[:root] = FolderNode.find_by(node_object_id: node_object.id).id&lt;br /&gt;
    if(prevTab!=nil)&lt;br /&gt;
      session[:last_open_tab] = prevTab&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'tree_display', action: 'list', currCtlr: name_parameter&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def goto_questionnaires&lt;br /&gt;
    goto_controller('Questionnaires','3')&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ScreenCast==== &lt;br /&gt;
&lt;br /&gt;
Here is a screencast of the tested functionality after the fix: [https://drive.google.com/open?id=1E2qDwcVvJBi_ybNdIqx6hykDmYVWqu6Y Fixed Issue #1186]&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The problem which we are trying to resolve arises because of the fact that all the rubrics, questionnaires, surveys, etc have been made available for all the instructors to view. Because there was no limitation the code uses the same to code to render lists across the different users. This raises an issue that one instructor can if they want to edit other instructor's surveys when they were only supposed to view them&lt;br /&gt;
Currently, if a non-authorized user clicks on edit he is redirected to the same page with an error. A better approach would be to not show the edit button at all and thus we have fixed this user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx:'''&lt;br /&gt;
- This code wait for the page to load and then try to find the user id embedded in the HTML sent from the backend. It then sets this id in a variable available across the app using javascript.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let app_variables = {&lt;br /&gt;
  currentUserId: null&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('load', e =&amp;gt; {&lt;br /&gt;
  let treeDisplayDiv = document.querySelector('#tree_display');&lt;br /&gt;
  if (treeDisplayDiv) {&lt;br /&gt;
    app_variables.currentUserId = document.querySelector('#tree_display').dataset.userId;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then pass the instructor's id coming from the API into the Component as props so that it is accessible inside out component for validation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The check which is helping us achieve this is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(app_variables.currentUserId == null || this.props.instructor_id == app_variables.currentUserId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For API changes&amp;lt;br&amp;gt;&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;instructor_id&amp;quot; =&amp;gt; child.get_instructor_id,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/models/questionnaire_node.rb'''&lt;br /&gt;
&lt;br /&gt;
This function added to the model which simply returns instructor_id associated with that particular questionnaire or survey.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def get_instructor_id&lt;br /&gt;
    Questionnaire.find_by(id: self.node_object_id).try(:instructor_id)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deployment==&lt;br /&gt;
This application with the mentioned changes have been deployed to the following URL: [http://152.46.19.166:8080 http://152.46.19.166:8080]&lt;br /&gt;
* We have used VCL for deployment.&lt;br /&gt;
* Username: instructor6&lt;br /&gt;
* Password: password&lt;br /&gt;
&lt;br /&gt;
==Test Plan==&lt;br /&gt;
csdkjn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;br /&gt;
#[https://reactjs.org/docs/react-component.html ReactJS Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127040</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=127040"/>
		<updated>2019-11-04T22:45:07Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded. Currently, the homepage shows 3 tabs: Courses, Assignments and Questionnaires. Suppose a user clicks on the &amp;quot;courses&amp;quot; tab and then from the &amp;quot;Manage Content Tab&amp;quot; -&amp;gt; &amp;quot;Questionnaires&amp;quot;, clicks on any of the options, then it will redirect to the same page and not the one which was selected. This needs to be fixed such that upon click, it opens up the corresponding rubric page with that particular rubric section expanded and also the respective tab (courses/assignments/questionnaires) must be highlighted. &lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab under 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx'''&lt;br /&gt;
- Created &amp;quot;ComponentDidMount&amp;quot; method under this script file which is a react lifecycle function and this is invoked immediately after a component is inserted into the tree. The setState method sets the expanded attribute to true for expanding the relative grid of the rubric. This method will trigger an extra rendering but it will happen before the browser updates the screen. This function will help determine which sub-menu item is selected and expands the corresponding rubric by updating the state of the table row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     componentDidMount: function() {&lt;br /&gt;
          rubBuffer = [&amp;quot;Review&amp;quot;, &amp;quot;Metareview&amp;quot;, &amp;quot;Author Feedback&amp;quot;, &amp;quot;Teammate Review&amp;quot;, &amp;quot;Assignment Survey&amp;quot;, &amp;quot;Global Survey&amp;quot;, &amp;quot;Course Survey&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
          selMenuItem = document.getElementById(&amp;quot;tree_display&amp;quot;).getAttribute(&amp;quot;data-menu-item&amp;quot;);&lt;br /&gt;
          selMenuItemInd = rubBuffer.indexOf(selMenuItem);&lt;br /&gt;
&lt;br /&gt;
          if(rubBuffer[selMenuItemInd] === this.props.name) {&lt;br /&gt;
              if (selMenuItemInd !== -1) {&lt;br /&gt;
                  this.setState({&lt;br /&gt;
                      expanded: true&lt;br /&gt;
                  }, function () {&lt;br /&gt;
                      this.props.rowClicked(this.props.id, true, this.props.newParams)&lt;br /&gt;
                  })&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
- This is the main controller which calls the respective tab upon selection. The 'last_open_tab' holds on the tab clicked under 'Questionnaire'. For every goto_controller call, the tab number sent along in the parameter refers to the respective order of tabs that appear on the homepage.&lt;br /&gt;
The changes in the goto_controller will allow the function to keep a track of which tab was last opened by using a new argument i.e. last_open_tab and setting its values to the integer value corresponding to the relative ordering of the tabs on the page . For e.g., if the Questionnaires tab is clicked then a value of 3 will be passed as a parameter since the position of the Questionnaires tab is 3 on the page.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  def goto_controller(name_parameter, prevTab)&lt;br /&gt;
    node_object = TreeFolder.find_by(name: name_parameter)&lt;br /&gt;
    session[:root] = FolderNode.find_by(node_object_id: node_object.id).id&lt;br /&gt;
    if(prevTab!=nil)&lt;br /&gt;
      session[:last_open_tab] = prevTab&lt;br /&gt;
    end&lt;br /&gt;
    redirect_to controller: 'tree_display', action: 'list', currCtlr: name_parameter&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def goto_questionnaires&lt;br /&gt;
    goto_controller('Questionnaires','3')&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ScreenCast==== &lt;br /&gt;
&lt;br /&gt;
Here is a screencast of the tested functionality after the fix: [https://drive.google.com/open?id=1E2qDwcVvJBi_ybNdIqx6hykDmYVWqu6Y Fixed Issue #1186]&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The problem which we are trying to resolve arises because of the fact that all the rubrics, questionnaires, surveys, etc have been made available for all the instructors to view. Because there was no limitation the code uses the same to code to render lists across the different users. This raises an issue that one instructor can if they want to edit other instructor's surveys when they were only supposed to view them&lt;br /&gt;
Currently, if a non-authorized user clicks on edit he is redirected to the same page with an error. A better approach would be to not show the edit button at all and thus we have fixed this user experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/assets/javascripts/tree_display.jsx:'''&lt;br /&gt;
- This code wait for the page to load and then try to find the user id embedded in the HTML sent from the backend. It then sets this id in a variable available across the app using javascript.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let app_variables = {&lt;br /&gt;
  currentUserId: null&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.addEventListener('load', e =&amp;gt; {&lt;br /&gt;
  let treeDisplayDiv = document.querySelector('#tree_display');&lt;br /&gt;
  if (treeDisplayDiv) {&lt;br /&gt;
    app_variables.currentUserId = document.querySelector('#tree_display').dataset.userId;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then pass the instructor's id coming from the API into the Component as props so that it is accessible inside out component for validation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The check which is helping us achieve this is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
instructor_id={entry.instructor_id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(app_variables.currentUserId == null || this.props.instructor_id == app_variables.currentUserId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For API changes&amp;lt;br&amp;gt;&lt;br /&gt;
'''app/controllers/tree_display_controller.rb'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;instructor_id&amp;quot; =&amp;gt; child.get_instructor_id,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''app/models/questionnaire_node.rb'''&lt;br /&gt;
&lt;br /&gt;
This function added to the model which simply returns instructor_id associated with that particular questionnaire or survey.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 def get_instructor_id&lt;br /&gt;
    Questionnaire.find_by(id: self.node_object_id).try(:instructor_id)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Major Fixes Done ==== &lt;br /&gt;
dfvmn&lt;br /&gt;
&lt;br /&gt;
==Deployment==&lt;br /&gt;
This application with the mentioned changes have been deployed to the following URL: [http://152.46.19.166:8080 http://152.46.19.166:8080]&lt;br /&gt;
* We have used VCL for deployment.&lt;br /&gt;
* Username: instructor6&lt;br /&gt;
* Password: password&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;br /&gt;
#[https://reactjs.org/docs/react-component.html ReactJS Documentation]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125431</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125431"/>
		<updated>2019-10-27T00:08:10Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab uner 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' &lt;br /&gt;
&lt;br /&gt;
TODO: RCA&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Details ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
==== Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller1:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller3:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125430</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125430"/>
		<updated>2019-10-27T00:07:23Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Details (The grubby details) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded.&lt;br /&gt;
&lt;br /&gt;
==== Problem Cause (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab uner 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' page.&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Details ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
==== Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller1:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller3:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125429</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125429"/>
		<updated>2019-10-27T00:05:58Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Details (The grubby details) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded.&lt;br /&gt;
&lt;br /&gt;
==== Details (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab uner 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is directed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' page.&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Details ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
==== Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller1:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller3:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125413</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125413"/>
		<updated>2019-10-26T23:23:08Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded.&lt;br /&gt;
&lt;br /&gt;
==== Details (The grubby details) ====&lt;br /&gt;
The Manage Content page has three tabs in it namely: &amp;quot;Courses&amp;quot;,&amp;quot;Assignments&amp;quot; and &amp;quot;Questionnaires&amp;quot;.&lt;br /&gt;
And the application has a feature of storing the 'Last open tab' in its session. Suppose a user was in 'Assignments' tab uner 'Manage Content' Section, and when the user switches to some other tab (By clicking on Home for instance), and comes back on 'Manage Content' section (by clicking on 'Manage...' menu button), he is welcomed back on the 'Assignments' tab only (the tab that was opened before leaving the 'Manage Content' section).&lt;br /&gt;
&lt;br /&gt;
The problem however, with this feature is that it dominates the natural flow of the application in the following scenario:&lt;br /&gt;
Lets say after leaving the 'Manage Content' section as mentioned above, the user clicks 'Manage...&amp;gt;Questionnaires', but even at this point, the user is directed again directed to 'Assignments' tab under 'Manage Content' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Details ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
==== Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller1:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller3:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125364</id>
		<title>CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1972._OSS_project_J._Skellington:_Accessing_Assignment_Rubrics&amp;diff=125364"/>
		<updated>2019-10-26T21:55:09Z</updated>

		<summary type="html">&lt;p&gt;Gsingh23: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1 : Inappropriate redirection when Managing Questionnaire types ===&lt;br /&gt;
&lt;br /&gt;
==== Description ==== &lt;br /&gt;
Each of the options for Manage&amp;gt;Questionnaires&amp;gt; does not appropriately link you to the Questionnaires tab with that section of Questionnaires expanded.&lt;br /&gt;
&lt;br /&gt;
=== Details ===&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
If you are on the assignment tab and select to Manage…&amp;gt;Questionnaires&amp;gt; [some option], this will send you to the assignment tab. It is believed that the redirect will always send you to the view that was previously displayed. Change the tab to course or questionnaire and then it just sends you to that tab instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc issue1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Instructors can make changes to each others’ rubrics ===&lt;br /&gt;
&lt;br /&gt;
==== Details ==== &lt;br /&gt;
Currently, rubric lists show all public rubrics and there is no option to restrict the view as in assignments and courses.  This should be fixed by only displaying the option to edit (pencil) when the rubric belongs to the user. This clearly indicates that the user has the ability or not to edit this rubric.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to reproduce ==== &lt;br /&gt;
Log in and Manage…&amp;gt;Questionnaires&amp;gt;Rubrics. Then click on one of the rubric types to show a list of rubrics and click through the edit options to reveal the flash error when you try and edit a rubric that is not yours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flowchart for correct behavior: ==== &lt;br /&gt;
&lt;br /&gt;
[[File:Fc uc2.png]]&lt;br /&gt;
&lt;br /&gt;
==== Fixes Done ==== &lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller1:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller2:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''app/controllers/controller3:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add&lt;br /&gt;
  code&lt;br /&gt;
    here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Ankit Manendra (amanend@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Bharat Sinha (bsinha2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Gurman Singh (gsingh23@ncsu.edu	)&lt;br /&gt;
&lt;br /&gt;
Mentor: Carmen Bentley (cnaiken@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Expertiza website] &lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/1186 Issue Number 1186]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/issues/696 Issue Number 696]&lt;/div&gt;</summary>
		<author><name>Gsingh23</name></author>
	</entry>
</feed>