<?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=Apshukla</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=Apshukla"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Apshukla"/>
	<updated>2026-08-24T10:07:44Z</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_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105762</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105762"/>
		<updated>2016-11-15T00:48:24Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Hide all assignment nodes on tree display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer reviewing of team projects and submission of project design documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution to the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
The current implementation of expertiza does not provide any feature for users to send feedback in case they face any problem. This new feature allows a user to send a complaint or feedback to expertiza support via email. Captcha needs to be implemented so as to prevent the abuse of the this feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 or 4 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:treeDisplay.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and issue description and captcha as input. The email id is auto-filled from the user profile. &lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support and acknowledgement displayed to user.&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
'''Model''': send_sync_message method with expertiza_support_helper(new helper class defining the body of email) will be responsible for sending email to expertiza support.&amp;lt;br/&amp;gt;  &lt;br /&gt;
'''Controller''': Feedback form submission should call MailerHelper’s send_sync_message method with the appropriate parameters specifying that an expertiza user is facing some issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''View''': A new expertiza contact support form to be created with fields email id, description of issue, captcha and submit button.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
A UI change replacing displaying tree with an icon. On click event will create a pop up panel. User selection will trigger the appropriate action(this functionality will not be changed). &lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
A link &amp;quot;Hide&amp;quot; to be added on assignment page. Method for hiding the section to be implemented. Clicking &amp;quot;Hide&amp;quot; link will call this new method.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105761</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105761"/>
		<updated>2016-11-15T00:47:28Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Hide all assignment nodes on tree display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer reviewing of team projects and submission of project design documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution to the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
The current implementation of expertiza does not provide any feature for users to send feedback in case they face any problem. This new feature allows a user to send a complaint or feedback to expertiza support via email. Captcha needs to be implemented so as to prevent the abuse of the this feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 or 4 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:treeDisplay.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and issue description and captcha as input. The email id is auto-filled from the user profile. &lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support and acknowledgement displayed to user.&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
'''Model''': send_sync_message method with expertiza_support_helper(new helper class defining the body of email) will be responsible for sending email to expertiza support.&amp;lt;br/&amp;gt;  &lt;br /&gt;
'''Controller''': Feedback form submission should call MailerHelper’s send_sync_message method with the appropriate parameters specifying that an expertiza user is facing some issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''View''': A new expertiza contact support form to be created with fields email id, description of issue, captcha and submit button.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
A UI change replacing displaying tree with an icon. On click event will create a pop up panel. User selection will trigger the appropriate action(this functionality will not be changed). &lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
A link &amp;quot;Hide&amp;quot; to be added on assignment page. Method for hiding the section to be added. Clicking &amp;quot;Hide&amp;quot; link will call this new method.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105760</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105760"/>
		<updated>2016-11-15T00:46:25Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer reviewing of team projects and submission of project design documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution to the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
The current implementation of expertiza does not provide any feature for users to send feedback in case they face any problem. This new feature allows a user to send a complaint or feedback to expertiza support via email. Captcha needs to be implemented so as to prevent the abuse of the this feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 or 4 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:treeDisplay.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and issue description and captcha as input. The email id is auto-filled from the user profile. &lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support and acknowledgement displayed to user.&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
'''Model''': send_sync_message method with expertiza_support_helper(new helper class defining the body of email) will be responsible for sending email to expertiza support.&amp;lt;br/&amp;gt;  &lt;br /&gt;
'''Controller''': Feedback form submission should call MailerHelper’s send_sync_message method with the appropriate parameters specifying that an expertiza user is facing some issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''View''': A new expertiza contact support form to be created with fields email id, description of issue, captcha and submit button.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
A UI change replacing displaying tree with an icon. On click event will create a pop up panel. User selection will trigger the appropriate action(this functionality will not be changed). &lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
A link &amp;quot;Hide&amp;quot; to be added on assignment page. Method for hiding the section to be added. Clicking &amp;quot;hide&amp;quot; link will call this new method.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105759</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105759"/>
		<updated>2016-11-15T00:45:55Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Design Pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer reviewing of team projects and submission of project design documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution to the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
The current implementation of expertiza does not provide any feature for users to send feedback in case they face any problem. This new feature allows a user to send a complaint or feedback to expertiza support via email. Captcha needs to be implemented so as to prevent the abuse of the this feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 or 4 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:treeDisplay.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and issue description and captcha as input. The email id is auto-filled from the user profile. &lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support and acknowledgement displayed to user.&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
'''Model''': send_sync_message method with expertiza_support_helper(new helper class defining the body of email) will be responsible for sending email to expertiza support.  &lt;br /&gt;
'''Controller''': Feedback form submission should call MailerHelper’s send_sync_message method with the appropriate parameters specifying that an expertiza user is facing some issue.&lt;br /&gt;
'''View''': A new expertiza contact support form to be created with fields email id, description of issue, captcha and submit button.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
A UI change replacing displaying tree with an icon. On click event will create a pop up panel. User selection will trigger the appropriate action(this functionality will not be changed). &lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
A link &amp;quot;Hide&amp;quot; to be added on assignment page. Method for hiding the section to be added. Clicking &amp;quot;hide&amp;quot; link will call this new method.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105739</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105739"/>
		<updated>2016-11-15T00:21:17Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer reviewing of team projects and submission of project design documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution to the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
The current implementation of expertiza does not provide any feature for users to send feedback in case they face any problem. This new feature allows a user to send a complaint or feedback to expertiza support via email. Captcha needs to be implemented so as to prevent the abuse of the this feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 or 4 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:treeDisplay.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and issue description and captcha as input. The email id is auto-filled from the user profile. &lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support and acknowledgement displayed to user.&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Design Pattern'''==&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105390</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105390"/>
		<updated>2016-11-11T03:20:43Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer reviewing of team projects and submission of project design documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution to the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
The current implementation of expertiza does not provide any feature for users to send feedback in case they face any problem. This new feature allows a user to send a complaint or feedback to expertiza support via email. Captcha needs to be implemented so as to prevent the abuse of the this feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 or 4 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:treeDisplay.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and issue description and captcha as input. The email id is auto-filled from the user profile. &lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support and acknowledgement displayed to user.&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105389</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105389"/>
		<updated>2016-11-11T03:20:24Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer reviewing of team projects and submission of project design documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution to the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
The current implementation of expertiza does not provide any feature for users to send feedback in case they face any problem. This new feature allows a user to send a complaint or feedback to expertiza support via email. Captcha needs to be implemented so as to prevent the abuse of the this feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:treeDisplay.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and issue description and captcha as input. The email id is auto-filled from the user profile. &lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support and acknowledgement displayed to user.&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:TreeDisplay.jpg&amp;diff=105388</id>
		<title>File:TreeDisplay.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:TreeDisplay.jpg&amp;diff=105388"/>
		<updated>2016-11-11T03:18:26Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:treeDisplay.jpg]]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:TreeDisplay.jpg&amp;diff=105387</id>
		<title>File:TreeDisplay.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:TreeDisplay.jpg&amp;diff=105387"/>
		<updated>2016-11-11T03:17:55Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: tree display&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tree display&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Menu.png&amp;diff=105386</id>
		<title>File:Menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Menu.png&amp;diff=105386"/>
		<updated>2016-11-11T03:11:11Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:menu.jpg]]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Menu.png&amp;diff=105385</id>
		<title>File:Menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Menu.png&amp;diff=105385"/>
		<updated>2016-11-11T03:10:28Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: expertiza tree display&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;expertiza tree display&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105102</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105102"/>
		<updated>2016-11-10T00:05:59Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and provides email id, issue description and captcha as input.&lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105101</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105101"/>
		<updated>2016-11-10T00:05:34Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
*'''Input:''' User clicks on Expertiza Support and provides email id, issue description and captcha as input.&lt;br /&gt;
*'''Type of Input:''' Feedback Form &lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Validate input fields and form submit&lt;br /&gt;
*'''Outputs:''' Email sent to Expertiza support &lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105095</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=105095"/>
		<updated>2016-11-09T23:59:22Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
[[File:UseCaseDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
The above figure shows the use case diagram for the project.&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104972</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104972"/>
		<updated>2016-11-09T20:14:55Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
*'''T.1: ''' Contact Support’ button should be seen to all the users (even unauthenticated).&lt;br /&gt;
*'''T.2: ''' For unauthenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with blank email id field, description and captcha &lt;br /&gt;
*'''T.3: ''' For authenticated users, clicking on ‘Contact Support’ should redirect to feedback support form page with email id auto-filled with email on their profile, description and captcha.&lt;br /&gt;
*'''T.4: ''' Before form submission, none of the fields should be blank. Appropriate blank error message should be shown otherwise.&lt;br /&gt;
*'''T.5: ''' Captcha should be random on every page load. Error message saying ‘incorrect captcha’ should be shown in case user fails to provide the same text of captcha.&lt;br /&gt;
*'''T.6: ''' Email should be received to Expertiza support “expertiza-support@lists.ncsu.edu” on the form submission and the user should get an acknowledgement of email received.&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104971</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104971"/>
		<updated>2016-11-09T20:11:55Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&amp;lt;br/&amp;gt;&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&amp;lt;br/&amp;gt;&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”. &amp;lt;br/&amp;gt;&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104970</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104970"/>
		<updated>2016-11-09T20:11:17Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website.&amp;lt;br/&amp;gt; &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”.&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104969</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104969"/>
		<updated>2016-11-09T20:09:45Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website. &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “[[expertiza-support@lists.ncsu.edu]]”.&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104966</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104966"/>
		<updated>2016-11-09T20:08:46Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Headline text */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104965</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104965"/>
		<updated>2016-11-09T20:08:03Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
== Headline text ==&lt;br /&gt;
&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website. &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “expertiza-support@lists.ncsu.edu”.&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104964</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104964"/>
		<updated>2016-11-09T20:07:32Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This design unit includes following tasks:&lt;br /&gt;
1. Provide ‘Contact Support’ button on top of website. &lt;br /&gt;
2. Create a feedback support form page which should be available  to all the users including unauthenticated users.&lt;br /&gt;
3. The form page should have fields for email Id for fetching email id of the user facing issue, a description input box where user can describe the steps for reproducing the issue.&lt;br /&gt;
4. This form should have field email auto filled with email on user profile if the user has logged in.&lt;br /&gt;
5. This form should provide random captcha to prevent abuse of this feature.&lt;br /&gt;
6. Submitting this feedback form page should trigger email to  “expertiza-support@lists.ncsu.edu”.&lt;br /&gt;
7. The project should provide User with an acknowledgment saying email has been seen and Expertiza Support will try to fix the issue as soon as possible.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104962</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104962"/>
		<updated>2016-11-09T20:05:50Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Product Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
=='''Product Requirements'''==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104961</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104961"/>
		<updated>2016-11-09T20:04:38Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
==Product Requirements==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104960</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104960"/>
		<updated>2016-11-09T20:04:14Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Provide a new UI which allows users to send emails to expertiza support Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
For understanding Expertiza support feature, reader should be aware of the use of captcha. This needs to be implemented so as to prevent the abuse of the support feature.&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
==Product Requirements==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104958</id>
		<title>CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1688._Send_feedback_to_support_%2B_tree_display_improvement&amp;diff=104958"/>
		<updated>2016-11-09T20:00:10Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Purpose */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source software to create reusable learning objects through peer review supporting team projects and submission of project documents. In the final project, there are two major changes that will help in improving user experience.&lt;br /&gt;
&lt;br /&gt;
=='''Purpose'''==&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is:&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
This feature will help expertiza users to achieve faster resolution for the problems they face. A new UI support needs to be given to enable them to directly send the issues they face to expertiza support through email. &lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
The purpose of this enhancement is to reduce the wastage of space on the Manage Assignments page.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
The purpose of this enhancement is to give a way for the user to hide all assignment nodes on tree display.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
Currently the data to be displayed for each assignment takes 2 lines whereas the “actions” icons are taking up 3 lines for display. This is a wastage of space on the screen.&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
When a user clicks on any of the course node in My Courses, it opens up a tree display listing all the assignments available for this particular course node. There doesn’t exist a way to hide the assignment nodes after displaying them.&lt;br /&gt;
&lt;br /&gt;
==Product Requirements==&lt;br /&gt;
&lt;br /&gt;
===Provide a new UI which allows users to send emails to expertiza support Background===&lt;br /&gt;
&lt;br /&gt;
===A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display===&lt;br /&gt;
To eliminate the extra space on Manage Assignments page because of less data and more “actions” icons, we will replace all the “actions” icons with a single “actions” icon embedded with a pop up panel. So when a user clicks on this new “actions” icon, it will throw a pop up containing all these previous “actions” icons and the user can select one of them to invoke one of these actions (edit, delete, add participant, create teams, etc...).&lt;br /&gt;
&lt;br /&gt;
===Hide all assignment nodes on tree display===&lt;br /&gt;
My courses shows a list of all course nodes. Clicking on one of these nodes opens up a list of assignment nodes related to the course node. This requirement will add the functionality to allow a user to hide this list of assignment nodes after displaying them. So after getting the expanded view of assignment nodes, we will provide an extra functionality to the user to hide these assignment nodes which invokes a hide action on assignment nodes.&lt;br /&gt;
&lt;br /&gt;
=='''Use Cases'''==&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
Provide a new icon in “actions” on tree display, then when you click on this new icon a new popup appears. This  popup has all the previous “actions” &lt;br /&gt;
*'''Input:''' User clicks on new icon&lt;br /&gt;
*'''Description:''' new popup appears with all actions in it&lt;br /&gt;
*'''Type of Input:''' Click on the new icon&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Create popup&lt;br /&gt;
*'''Outputs:''' Pop up Panel displaying all the previous “actions” icons for the user to choose from.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''Input:''' User clicks on Hide link on Course nodes page.&lt;br /&gt;
*'''Description''': Hide the expanded view of Assignment nodes on Course nodes page.&lt;br /&gt;
*'''Type of Input:''' Click on the Hide link.&lt;br /&gt;
*'''Source of Input:''' User interface&lt;br /&gt;
*'''Processing:''' Invoke the Hide Assignment nodes action on Course nodes page.&lt;br /&gt;
*'''Output:''' Only Course nodes are listed.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
==='''Provide a new UI which allows users to send emails to expertiza support Background'''===&lt;br /&gt;
&lt;br /&gt;
==='''A single “actions” icon with a pop up panel in place of the currently existing “action” icons on tree display'''===&lt;br /&gt;
*'''T.1: ''' Ensure that when a user click on the new “actions” icon, it throws a pop up panel with all the old “actions” icons.&lt;br /&gt;
*'''T.2: ''' Ensure that Edit icon redirects the user to edit assignment view.&lt;br /&gt;
*'''T.3: ''' Ensure that Delete icon deletes the assignment.&lt;br /&gt;
*'''T.4: ''' Ensure that Add TA icon redirects the user to Add TA view.&lt;br /&gt;
*'''T.5: ''' Ensure that Add Participant icon redirects the user to Add Participant view.&lt;br /&gt;
*'''T.6: ''' Ensure that Create Teams icon redirects the user to Create Teams view.&lt;br /&gt;
*'''T.7: ''' Ensure that Create Assignment icon redirects the user to Create Assignment view.&lt;br /&gt;
*'''T.8: ''' Ensure that 360 assessment dashboard icon redirect user to One_course_all_assignments page of assessment360 view.&lt;br /&gt;
*'''T.9: ''' Ensure that Copy icon redirects user to Edit course page.&lt;br /&gt;
*'''T.10: ''' Ensure that Make public icon redirects user to the tree display page.&lt;br /&gt;
&lt;br /&gt;
==='''Hide all assignment nodes on tree display'''===&lt;br /&gt;
*'''T.1''' Ensure that when a user clicks on the Hide button/link to hide the assignment nodes, the view only displays course nodes and not the related list of assignment nodes.&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103524</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103524"/>
		<updated>2016-10-29T01:07:31Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* UI testing of participant  addition via CSV file and e-mail delivery check */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
&lt;br /&gt;
We would request you to create at least 3-4 users more to test all the functionality pertaining to this project.&lt;br /&gt;
This is because teams can be created and all the functionality with respect to email notifications can be tested.&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
[[Expertiza]] is an open source project based on [[Ruby]] on [[Rails]] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* An e-mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, an e-mail is sent to a reviewer saying a new submission is available for a particular review round. Thus, the reviewer will be able to see the review round number.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. An e-mail is getting triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the other student accepts it, another e-mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for response to an advertisement ====&lt;br /&gt;
* Login as student. Go to assignment page.&lt;br /&gt;
* Go to your team and create an advertisement for this assignment.&lt;br /&gt;
* Login as some other student who is the participant of the same assignment. Go to assignment page and open sign up sheet.&lt;br /&gt;
* For the topic assigned to the student who created advertisement, an icon will appear in advertisement tab. &lt;br /&gt;
* Clicking on this icon will redirect the student to page where student can request to join the team of students who created advertisement.&lt;br /&gt;
* On click of request button, an e-mail of this response to the advertisement will be sent to the students who created advertisement.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103522</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103522"/>
		<updated>2016-10-29T01:06:59Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* UI testing of file submission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
&lt;br /&gt;
We would request you to create at least 3-4 users more to test all the functionality pertaining to this project.&lt;br /&gt;
This is because teams can be created and all the functionality with respect to email notifications can be tested.&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
[[Expertiza]] is an open source project based on [[Ruby]] on [[Rails]] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, an e-mail is sent to a reviewer saying a new submission is available for a particular review round. Thus, the reviewer will be able to see the review round number.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. An e-mail is getting triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the other student accepts it, another e-mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for response to an advertisement ====&lt;br /&gt;
* Login as student. Go to assignment page.&lt;br /&gt;
* Go to your team and create an advertisement for this assignment.&lt;br /&gt;
* Login as some other student who is the participant of the same assignment. Go to assignment page and open sign up sheet.&lt;br /&gt;
* For the topic assigned to the student who created advertisement, an icon will appear in advertisement tab. &lt;br /&gt;
* Clicking on this icon will redirect the student to page where student can request to join the team of students who created advertisement.&lt;br /&gt;
* On click of request button, an e-mail of this response to the advertisement will be sent to the students who created advertisement.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103502</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103502"/>
		<updated>2016-10-29T01:01:15Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* UI testing for responding to an advertisement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
&lt;br /&gt;
We would request you to create at least 3-4 users more to test all the functionality pertaining to this project.&lt;br /&gt;
This is because teams can be created and all the functionality with respect to email notifications can be tested.&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
[[Expertiza]] is an open source project based on [[Ruby]] on [[Rails]] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. An e-mail is getting triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the other student accepts it, another e-mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for response to an advertisement ====&lt;br /&gt;
* Login as student. Go to assignment page.&lt;br /&gt;
* Go to your team and create an advertisement for this assignment.&lt;br /&gt;
* Login as some other student who is the participant of the same assignment. Go to assignment page and open sign up sheet.&lt;br /&gt;
* For the topic assigned to the student who created advertisement, an icon will appear in advertisement tab. &lt;br /&gt;
* Clicking on this icon will redirect the student to page where student can request to join the team of students who created advertisement.&lt;br /&gt;
* On click of request button, an e-mail of this response to the advertisement will be sent to the students who created advertisement.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103500</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103500"/>
		<updated>2016-10-29T01:00:41Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* UI testing for responding to an advertisement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
&lt;br /&gt;
We would request you to create at least 3-4 users more to test all the functionality pertaining to this project.&lt;br /&gt;
This is because teams can be created and all the functionality with respect to email notifications can be tested.&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
[[Expertiza]] is an open source project based on [[Ruby]] on [[Rails]] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. An e-mail is getting triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the other student accepts it, another e-mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for responding to an advertisement ====&lt;br /&gt;
* Login as student. Go to assignment page.&lt;br /&gt;
* Go to your team and create an advertisement for this assignment.&lt;br /&gt;
* Login as some other student who is the participant of the same assignment. Go to assignment page and open sign up sheet.&lt;br /&gt;
* For the topic assigned to the student who created advertisement, an icon will appear in advertisement tab. &lt;br /&gt;
* Clicking on this icon will redirect the student to page where student can request to join the team of students who created advertisement.&lt;br /&gt;
* On click of request button, an e-mail of this response to the advertisement will be sent to the students who created advertisement.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103491</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103491"/>
		<updated>2016-10-29T00:57:11Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* UI testing for responding to an advertisement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
&lt;br /&gt;
We would request you to create at least 3-4 users more to test all the functionality pertaining to this project.&lt;br /&gt;
This is because teams can be created and all the functionality with respect to email notifications can be tested.&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. An e-mail is getting triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the other student accepts it, another e-mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for responding to an advertisement ====&lt;br /&gt;
* Login as student. Go to assignment page.&lt;br /&gt;
* Go to your team and create an advertisement for this assignment.&lt;br /&gt;
* Login as some other student who is the participant of the same assignment. Go to assignment page and open sign up sheet.&lt;br /&gt;
* For the topic assigned to the student who created advertisement, an icon will appear in advertisement tab. &lt;br /&gt;
* Clicking on this icon will redirect the student to page where student can request to join the team of students who created advertisement.&lt;br /&gt;
* On click of request button, an e-mail of this response will be sent to the students who created advertisement.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103488</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103488"/>
		<updated>2016-10-29T00:56:40Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Testing Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
&lt;br /&gt;
We would request you to create at least 3-4 users more to test all the functionality pertaining to this project.&lt;br /&gt;
This is because teams can be created and all the functionality with respect to email notifications can be tested.&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. An e-mail is getting triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the other student accepts it, another e-mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for responding to an advertisement ====&lt;br /&gt;
* Login as student. Go to assignment page.&lt;br /&gt;
* Go to your team and create an advertisement for this assignment.&lt;br /&gt;
* Login as some other student who is the participant of the same assignment. Go to assignment page and open sign up sheet.&lt;br /&gt;
* For the topic assigned to the student who created advertisement, an icon will appear in advertisement tab. &lt;br /&gt;
* Clicking on this icon will redirect the student to page where student can request to join the team of students who created advertisement.&lt;br /&gt;
* On click of request button, an e-mail of this response will be sent to the students who created advertisement.&lt;br /&gt;
&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets an e-mail of this response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103439</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103439"/>
		<updated>2016-10-29T00:33:17Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* UI testing for sending/accepting invitation to join team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. An e-mail is getting triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the other student accepts it, another e-mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103433</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103433"/>
		<updated>2016-10-29T00:30:25Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Scope for Future Improvement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned.&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So, this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103416</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103416"/>
		<updated>2016-10-29T00:21:46Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* UI testing of participant  addition via CSV file and mail delivery check */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and e-mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant not having expertiza account to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103410</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103410"/>
		<updated>2016-10-29T00:19:25Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Scope for Future Improvement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* An e-mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such e-mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103404</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103404"/>
		<updated>2016-10-29T00:14:56Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/submitted_content_controller&lt;br /&gt;
# helpers/mailer_helper&lt;br /&gt;
# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
# controllers/invitation_controller&lt;br /&gt;
# helpers/participants_helper&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* A mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103400</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103400"/>
		<updated>2016-10-29T00:14:14Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
# controllers/import_file_controller.rb &lt;br /&gt;
*# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/submitted_content_controller&lt;br /&gt;
*# helpers/mailer_helper&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4.1 E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/invitation_controller&lt;br /&gt;
*# helpers/participants_helper&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
4.2 Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* A mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103395</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103395"/>
		<updated>2016-10-29T00:12:44Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
*# controllers/import_file_controller.rb &lt;br /&gt;
*# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/submitted_content_controller&lt;br /&gt;
*# helpers/mailer_helper&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
&lt;br /&gt;
4. E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/invitation_controller&lt;br /&gt;
*# helpers/participants_helper&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
5. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* A mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103393</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103393"/>
		<updated>2016-10-29T00:11:54Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
1. When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So, this issue is fixed by implementing the functionality of sending e-mail when account creation is done in this case. Now, e-mail is getting triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality.&lt;br /&gt;
*# controllers/import_file_controller.rb &lt;br /&gt;
*# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
2. Evidently, if a file is revised after review, the system e-mails the reviewer saying to revise the review. The method to implement this was in place but wasn't working. This issue is fixed. Note that the e-mail is only triggered for a file submission and there is no mailer functionality in place for URL submission. Also, after the last round of review is completed, e-mail is no longer is getting triggered as desired. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/submitted_content_controller&lt;br /&gt;
*# helpers/mailer_helper&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
3. The message body of the e-mail now includes the round of the review stage for which the review is provided along with a link to the site. Files changed are same as mentioned in second point.&lt;br /&gt;
* E-mail is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/invitation_controller&lt;br /&gt;
*# helpers/participants_helper&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are same as mentioned in the 4th point. New views are created for this functionality&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
&lt;br /&gt;
4. Mail is also getting triggered when a student responds to a teammate advertisement. The controller and helper class changed are same as mentioned in the 4th point. New views are created for this functionality.&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* A mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103329</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103329"/>
		<updated>2016-10-28T23:47:41Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate and work on making enhancements to the code base by applying the concepts of Rails, RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the students on their account creation and to the reviewer when a submission of work is done. The scope of this project is to improve the present email notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
* When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So this functionality of account creation was fixed. No mail is triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality&lt;br /&gt;
*# controllers/import_file_controller.rb &lt;br /&gt;
*# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
* Evidently if a file is revised after review,  the system e-mails the reviewer saying to revise the review. This method was provided but wasn't working. This functionality was fixed and successfully implemented(Mail is only triggered for a file submission. For link submission their is no mailer functionalities). Also after the last round of review is over, mail is no longer triggered. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/submitted_content_controller&lt;br /&gt;
*# helpers/mailer_helper&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
* The message body of the mail is fixed to include the round of the review stage for which the review is provided along with a link to the site. Files are same as mentioned in second point.&lt;br /&gt;
* Email is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/invitation_controller&lt;br /&gt;
*# helpers/participants_helper&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are the same as mentioned in the 4th point. Although new views had to be created for this functionality&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
* Mail is also triggered when a student responds to a teammate advertisement. The controller and helper class are the same as mentioned in the 4th point. Although new views had to be created for this functionality.&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* A mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103313</id>
		<title>User:Cbaruah</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Cbaruah&amp;diff=103313"/>
		<updated>2016-10-28T23:37:44Z</updated>

		<summary type="html">&lt;p&gt;Apshukla: /* Expertiza Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= CSC/ECE 517 Fall 2016 E1655/OSS Improve e-mail notification =&lt;br /&gt;
&lt;br /&gt;
===Peer Review Information===&lt;br /&gt;
&lt;br /&gt;
For users intending to view the deployed Expertiza associated with this assignment, the credentials are as follows:&lt;br /&gt;
&lt;br /&gt;
* Instructor Login: Username: instructor6 , password: password&lt;br /&gt;
* Student Login: Username: student5432 , password: password&lt;br /&gt;
* Student Login: Username: testing11, password: password&lt;br /&gt;
* Student Login: Username: testing12, password: password&lt;br /&gt;
&lt;br /&gt;
===Expertiza Background===&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other student's submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
Mailers in Expertiza have their association with many other components like Users, Courses, Reviews, Participants and Invitations. The Mailer Helper in specific invokes methods which perform mailer related functions like sending email to newly created user, sending email to reviewer etc.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
This project in particular intends that the students collaborate with each other and work on making enhancements to the code base by applying the concepts of Rails,RSpec, DRY code,Test driven development etc. This provides an opportunity for students to contribute to an open source project and learn further about software deployment etc.&lt;br /&gt;
&lt;br /&gt;
Currently, the mailer notifies the participants when a new user is created, to the reviewer when a submission of work is done. The scope of this project is to improve the present mail notifications and also plug gaps in some implementations.&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
* When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. So this functionality of account creation was fixed. No mail is triggered to the concerned user whenever their account is created regardless of how their account is created. The listed files were manipulated for updating this functionality&lt;br /&gt;
*# controllers/import_file_controller.rb &lt;br /&gt;
*# helpers/import_file_helper &lt;br /&gt;
&lt;br /&gt;
* Evidently if a file is revised after review,  the system e-mails the reviewer saying to revise the review. This method was provided but wasn't working. This functionality was fixed and successfully implemented(Mail is only triggered for a file submission. For link submission their is no mailer functionalities). Also after the last round of review is over, mail is no longer triggered. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/submitted_content_controller&lt;br /&gt;
*# helpers/mailer_helper&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
&lt;br /&gt;
* The message body of the mail is fixed to include the round of the review stage for which the review is provided along with a link to the site. Files are same as mentioned in second point.&lt;br /&gt;
* Email is triggered to an invitee whenever a participant sends out an invitation to another participant to join a team. The listed files were updated or created to get the functionality working.&lt;br /&gt;
*# controllers/invitation_controller&lt;br /&gt;
*# helpers/participants_helper&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* Whenever the invitee accepts the invitation, the student who issued the invitation gets a mail stating that the invitee has accepted his/her invitation. The controller and helper class are the same as mentioned in the 4th point. Although new views had to be created for this functionality&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_team_accept_invite_plain.html.erb &lt;br /&gt;
* Mail is also triggered when a student responds to a teammate advertisement. The controller and helper class are the same as mentioned in the 4th point. Although new views had to be created for this functionality.&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
*# app/views/mailer/partials/_response_to_advertisement.html.erb&lt;br /&gt;
&lt;br /&gt;
===Files modified in current project===&lt;br /&gt;
====Classes====&lt;br /&gt;
* controllers/import_file_controller&lt;br /&gt;
* controllers/submitted_content_controller&lt;br /&gt;
* controllers/invitation_controller&lt;br /&gt;
* helpers/import_file_helper&lt;br /&gt;
* helpers/participants_helper&lt;br /&gt;
* helpers/mailer_helper&lt;br /&gt;
&lt;br /&gt;
====About import_file_controller====&lt;br /&gt;
&lt;br /&gt;
This controller derives from the Application Controller. It states the functionality of importing any kind of file like csv, xls, doc into the application. It defines the import function which takes the 'session' and 'params' as output and provides success message on successful import. It also provides the functionality of specifying the delimiter in the file which is being imported. The ImportFile method defined in the controller reads the file row by row based on the model concerned. The modified code snippet is&lt;br /&gt;
&lt;br /&gt;
====About submitted_content_controller====&lt;br /&gt;
&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD operations on submitting the file or hyperlink for assignment. It provides functionality to download, create folder and delete folder after submission. It provides the functionality for submitting links and submitting hyperlinks separately.&lt;br /&gt;
&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_reviewer(User.find(participant.user_id), &amp;quot;A new submission is available&amp;quot;, &amp;quot;file_submission&amp;quot;, &amp;quot;file  submission&amp;quot;, Assignment.find(participant.parent_id).name)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About invitation_controller ====&lt;br /&gt;
This controller also derives from the Application Controller. It states the CRUD as well as other basic operations when an invitation is sent by an user to any participant to join their team. It provides the functionality to send and accept invitations as well as to reject invitations and leave team.&lt;br /&gt;
&lt;br /&gt;
 # To send mail request to invitees to join team&lt;br /&gt;
 prepared_mail = MailerHelper.send_mail_for_invitation(user, &amp;quot;Invitation to join team&amp;quot;, &amp;quot;team_join_invite&amp;quot;, &amp;quot;invitation to join&amp;quot;, student.name)&lt;br /&gt;
 prepared_mail.deliver&lt;br /&gt;
&lt;br /&gt;
==== About import_file_helper ====&lt;br /&gt;
This is a helper file for the '''import_file_controller''' class which stores the attributes from the controller class as well as creates new users when user are created by importing a CSV file.&lt;br /&gt;
&lt;br /&gt;
 def self.create_new_user(attributes, session)&lt;br /&gt;
    user = User.new(attributes)&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.timezonepref = User.find(user.parent_id).timezonepref&lt;br /&gt;
    user.save!&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, user.password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    user&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==== About participants_helper ====&lt;br /&gt;
This is a helper file for the '''participants_controller''' class. It provides some of the basic functionalities that is required to create participants that are added to expertiza.&lt;br /&gt;
&lt;br /&gt;
   def self.create_new_user(attrs, session)&lt;br /&gt;
    user = User.new&lt;br /&gt;
    user.update_attributes attrs&lt;br /&gt;
    user.parent_id = (session[:user]).id&lt;br /&gt;
    user.save&lt;br /&gt;
    password = @user.reset_password&lt;br /&gt;
    prepared_mail = MailerHelper.send_mail_to_user(@user, &amp;quot;Your Expertiza account and password have been created.&amp;quot;, &amp;quot;user_welcome&amp;quot;, password)&lt;br /&gt;
    prepared_mail.deliver&lt;br /&gt;
    flash[:success] = &amp;quot;A new password has been sent to new user's e-mail address.&amp;quot;&lt;br /&gt;
    user&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== About mailer_helper ====&lt;br /&gt;
This helper file is for the '''mailer''' class. Its creates the structure of the mail body that is needed by the mailer class to send mails. It also holds all the attributes that are required to send a mail.&lt;br /&gt;
&lt;br /&gt;
 def self.send_mail_to_reviewer(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.send_mail_for_invitation(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
def self.send_mail_for_advertisement_response(user, subject, partial_name, type, obj_name)&lt;br /&gt;
    Mailer.sync_message ({&lt;br /&gt;
      to: user.email,&lt;br /&gt;
      subject: subject,&lt;br /&gt;
      body: {&lt;br /&gt;
        type: type,&lt;br /&gt;
        obj_name: obj_name,&lt;br /&gt;
        user: user,&lt;br /&gt;
        first_name: ApplicationHelper.get_user_first_name(user),&lt;br /&gt;
        partial_name: partial_name&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
=== Files created in current project ===&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_join_invite_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_file_submission_plain.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_html.html.erb&lt;br /&gt;
* app/views/mailer/partials/_team_accept_invite_plain.html.erb&lt;br /&gt;
&lt;br /&gt;
===Testing Details===&lt;br /&gt;
&lt;br /&gt;
==== UI testing of participant  addition via CSV file and mail delivery check ====&lt;br /&gt;
* Login as instructor. Create a new course and assignment.&lt;br /&gt;
* Add new participant to an assignment using a import file option.&lt;br /&gt;
* A mail is triggered for participant who do not have an expertiza account.&lt;br /&gt;
&lt;br /&gt;
==== UI testing of file submission ====&lt;br /&gt;
* Login as student. Go to assignment and open your work page.&lt;br /&gt;
* Upload a new file submission. If the submission is made in review stage, a mail is triggered to a reviewer saying a new submission is available for a particular review round.&lt;br /&gt;
&lt;br /&gt;
==== UI testing for sending/accepting invitation to join team ====&lt;br /&gt;
* Login as student. Go to assignment and open your team page.&lt;br /&gt;
* Search for a student with whom you want to team up and click on send invite. A mail is triggered to that student saying a new invite has been sent.&lt;br /&gt;
* When the student accepts it, another mail is triggered back to the invitee saying the invite has been accepted.&lt;br /&gt;
* When a team member responds to an advertisement, the student who hosted it gets a mail about that response.&lt;br /&gt;
&lt;br /&gt;
===Scope for Future Improvement===&lt;br /&gt;
* A mail is being triggered only when a file is submitted for revision. But on the submission of a link, no such mail is sent. So this is one of the areas which can be improved in the future.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
https://github.com/cbaruah/expertiza.git&lt;br /&gt;
&lt;br /&gt;
https://expertiza.ncsu.edu&lt;br /&gt;
&lt;br /&gt;
http://research.csc.ncsu.edu/efg/expertiza&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg YouTube channel]&lt;br /&gt;
&lt;br /&gt;
[https://hub.docker.com/r/winbobob/expertiza-fall2016/ How to install and run image file in docker]&lt;/div&gt;</summary>
		<author><name>Apshukla</name></author>
	</entry>
</feed>