<?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=Kbasuch</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=Kbasuch"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Kbasuch"/>
	<updated>2026-05-16T20:05:00Z</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_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=106055</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=106055"/>
		<updated>2016-12-02T17:02:22Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link generates a drop-down window, which contains the form for creating a new assignment. This form contains the same fields as the original form.&amp;lt;br/&amp;gt;&lt;br /&gt;
In addition, we have added data validations for two fields. The name of the assignment cannot be left blank, and the 'submission directory' field cannot be left blank or contain any special characters. If either of these conditions is violated, an error message is displayed to the user. Furthermore, these validations are done in the client-side itself, removing the need for a server request to validate the data.&lt;br /&gt;
Submitting the form will create a  database entry and close the form.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx.erb&lt;br /&gt;
*apps/controllers/assignments_controller.rb&lt;br /&gt;
*apps/controllers/tree_display_controller.rb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
&lt;br /&gt;
1. Log in as an instructor and check that creating a new assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that the assignment could be created successfully and all the entered options have been preserved&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
#[https://facebook.github.io/react/ ReactJS by Facebook Code]&lt;br /&gt;
#[https://www.airpair.com/reactjs/posts/reactjs-a-guide-for-rails-developers ReactJS for Ruby on Rails]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105649</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105649"/>
		<updated>2016-11-14T22:12:47Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
&lt;br /&gt;
1. Log in as an instructor and check that creating a new assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that the assignment could be created successfully and all the entered options have been preserved&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
#[https://facebook.github.io/react/ ReactJS by Facebook Code]&lt;br /&gt;
#[https://www.airpair.com/reactjs/posts/reactjs-a-guide-for-rails-developers ReactJS for Ruby on Rails]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105647</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105647"/>
		<updated>2016-11-14T22:11:58Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
&lt;br /&gt;
1. Log in as an instructor and check that creating a new assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that the assignment could be created successfully and all the entered options have been preserved&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
#[https://facebook.github.io/react/ ReactJS by Facebook Code]&lt;br /&gt;
#[https://www.airpair.com/reactjs/posts/reactjs-a-guide-for-rails-developers ReactJS for Ruby on Rails]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105645</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105645"/>
		<updated>2016-11-14T22:10:40Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
&lt;br /&gt;
1. Log in as an instructor and check that creating a new assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that the assignment could be created successfully and all the entered options have been preserved&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
#[https://facebook.github.io/react/ ReactJS by Facebook Code]&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105642</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105642"/>
		<updated>2016-11-14T22:07:41Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: Added references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
&lt;br /&gt;
1. Log in as an instructor and check that creating a new assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that the assignment could be created successfully and all the entered options have been preserved&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
#https://facebook.github.io/react/&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105640</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105640"/>
		<updated>2016-11-14T22:05:40Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
&lt;br /&gt;
1. Log in as an instructor and check that creating a new assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that the assignment could be created successfully and all the entered options have been preserved&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105639</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105639"/>
		<updated>2016-11-14T22:04:54Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
&lt;br /&gt;
1. Log in as an instructor and check that creating a new assignment works as expected&lt;br /&gt;
2. Log in as an instructor and check that the assignment could be created successfully and all the entered options have been preserved&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105633</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105633"/>
		<updated>2016-11-14T21:58:31Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/assets/javascripts/tree_display.jsx&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105628</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105628"/>
		<updated>2016-11-14T21:53:45Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/new.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps/views/tree_display/list.html.erb&lt;br /&gt;
*apps/views/assignments/edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105626</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105626"/>
		<updated>2016-11-14T21:43:15Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: /* Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps\views\assignments\new.html.erb&lt;br /&gt;
*apps\views\assignments\edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that new converted page is rendering as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully created and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:2%;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps\views\assignments\new.html.erb&lt;br /&gt;
*apps\views\assignments\edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105625</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105625"/>
		<updated>2016-11-14T21:42:17Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic222.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin: 5px 5px 5px 5px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic1.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps\views\assignments\new.html.erb&lt;br /&gt;
*apps\views\assignments\edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that new converted page is rendering as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully created and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
Similar to New assignment creation page Edit page does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to edit the name of the assignment or change number of slots they have to click edit button. It will generate a server request and the new view is rendered (url is changed). After filling out all the details that changed, save link will again generate a server request which will make the database entry and again render a new view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic55.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:45%;float:left;margin-left:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[image:FinalProj pic66.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
In the revised implementation, the main edit table will be dynamically updatable. Saving the details will make the database entry. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic77.png|center]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps\views\assignments\new.html.erb&lt;br /&gt;
*apps\views\assignments\edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
====Testing plan====&lt;br /&gt;
1. Log in as an instructor and check that editing an assignment works as expected&amp;lt;br&amp;gt;&lt;br /&gt;
2. Log in as an instructor and check that an assignment could be successfully edited and all the existing functionality is preserved&amp;lt;br&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105502</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105502"/>
		<updated>2016-11-13T23:36:18Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
== Assignment Creation ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic22.png]][[image:FinalProj pic1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
[[image:FinalProj pic44.png]]&lt;br /&gt;
&lt;br /&gt;
====Files to be changed====&lt;br /&gt;
*apps\views\assignments\new.html.erb&lt;br /&gt;
*apps\views\assignments\edit.html.erb&lt;br /&gt;
*apps/views/assignments/edit/_general.html.erb&lt;br /&gt;
&lt;br /&gt;
== Editing Assignment ==&lt;br /&gt;
=== Current Implementation === &lt;br /&gt;
=== Proposed Solution ===&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105075</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105075"/>
		<updated>2016-11-09T23:22:40Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NC State University, funded by the National Science Foundation. It allows the instructor to create assignments as well as modify existing assignments. Students can signup for topics in an assignment and can submit articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework. It also allows students to review the submissions that have been made other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105071</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105071"/>
		<updated>2016-11-09T23:19:31Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: /* Proposed Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the &amp;lt;i&amp;gt;New Assignment&amp;lt;/i&amp;gt; link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105069</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105069"/>
		<updated>2016-11-09T23:18:09Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Rendering ===&lt;br /&gt;
A client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. JavaScript and other scripting languages determine the way the HTML in the received page is parsed into the Document Object Model, or DOM, that represents the loaded web page. The same client-side techniques can then dynamically update or change the DOM in the same way.&lt;br /&gt;
&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current Implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. &lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
== Proposed Solution ==&lt;br /&gt;
&lt;br /&gt;
In the revised implementation, clicking on the [i]New Assignment[/i] link will generate a popup window. This window will be generated in the same view (The URL remains unchanged) and will contain the same fields and options as the original form. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself, leading to a decrease in the number of server requests.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105061</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105061"/>
		<updated>2016-11-09T23:03:08Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. Implementing this in ReactJS, will eliminate these server requests. New assignment link will generate a popup window, right there on the same view (The URL remains unchanged) and will be provided with the same options. Saving the details will make the database entry and close the popup window. Except for the database update, all the processing is done on the client side itself.&lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution - Dynamic Views==&lt;br /&gt;
Shown below is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
&lt;br /&gt;
Using these principles, it is possible to create a dynamic view which will dynamically render a form in the popup window, allowing the Expertiza user to create a new assignment. The only request that will be sent to he server will be the one containing information regarding the database entry for the new assignment&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105060</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105060"/>
		<updated>2016-11-09T22:57:17Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. Implementing this in ReactJS, will eliminate these server requests. New assignemnt link will generae a popoup window, right there on the same view (url remains same) and will be provided with the same options. Saving the details will make the databse entry and close the popup window. So basically the processing is done at the client side except for the database change.      &lt;br /&gt;
&lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
This is an example of a dynamically rendered webpage. The user is able to enter values, which are reflected in the view immediately after submission, without any redirection or reloading of the webpage. You can also see the timer running on the page, which demonstrates the ability to dynamically update variable values inside the view.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105056</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105056"/>
		<updated>2016-11-09T22:51:38Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. Implementing this in ReactJS, will eliminate these server requests. New assignemnt link will generae a popoup window, right there on the same view (url remains same) and will be provided with the same options. Saving the details will make the databse entry and close the popup window. So basically the processing is done at the client side except for the database change.      &lt;br /&gt;
&lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
[[File:Giphy.gif|centre]]&lt;br /&gt;
This is &lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Giphy.gif&amp;diff=105055</id>
		<title>File:Giphy.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Giphy.gif&amp;diff=105055"/>
		<updated>2016-11-09T22:51:02Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: uploaded a new version of &amp;amp;quot;File:Giphy.gif&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105053</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105053"/>
		<updated>2016-11-09T22:37:14Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to know how a component is rendered, you just look at the render function. This render function basically implements html &amp;lt;i&amp;gt;divs&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; JSX is a faster, safer and easer JavaScript which makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged or combined with each other.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; React can be rendered on the server-side. So you can easily use it in the Ruby on Rails too. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It is easy to test (easier than the traditional JavaScript or JQuery where you have to test the code in the Developer Tools) and it can easily be integrated with tools like jest which can make  testing painless.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It ensures readability and makes maintainability easier.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; It can be used with any framework such as Backbone.js, Angular.js, as it is only a view layer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. Implementing this in ReactJS, will eliminate these server requests. New assignemnt link will generae a popoup window, right there on the same view (url remains same) and will be provided with the same options. Saving the details will make the databse entry and close the popup window. So basically the processing is done at the client side except for the database change.      &lt;br /&gt;
&lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
[[File:Giphy.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Giphy.gif&amp;diff=105052</id>
		<title>File:Giphy.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Giphy.gif&amp;diff=105052"/>
		<updated>2016-11-09T22:36:49Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105031</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105031"/>
		<updated>2016-11-09T21:58:32Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&lt;br /&gt;
easy to know how a component is rendered, you just look at the render function.&lt;br /&gt;
    JSX makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged/combined with each other.&lt;br /&gt;
    you can render React on the server-side.&lt;br /&gt;
    it is easy to test, and you can also integrate some tools like jest.&lt;br /&gt;
    it ensures readability and makes maintainability easier.&lt;br /&gt;
    you can use React with any framework (Backbone.js, Angular.js) as it is only a view layer.&lt;br /&gt;
&lt;br /&gt;
== Current implementation == &lt;br /&gt;
The assignment creation view is currently implemented mostly in HTML and some data validations are done using JQuery. This implementation does not support dynamic view rendering which is essential to improving the user interface and contributing to the fluidity of the overall experience. For example, If the user wants to create a new assignment, clicking the new assignment link will generate a server request and the new view is rendered (url is changed). After filling up all the details required for the assignment creation, save link will again generate a server request which will make the database entry and again render a new view. Implementing this in ReactJS, will eliminate these server requests. New assignemnt link will generae a popoup window, right there on the same view (url remains same) and will be provided with the same options. Saving the details will make the databse entry and close the popup window. So basically the processing is done at the client side except for the database change.      &lt;br /&gt;
&lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Proposed solution===&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105023</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=105023"/>
		<updated>2016-11-09T21:51:32Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1691 Convert Assignment Creation Form to ReactJS =&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
== React JS ==&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
=== Advantages of ReactJS ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current implementation == &lt;br /&gt;
The assignment creating page view is as follows.&lt;br /&gt;
&lt;br /&gt;
[[File:FinalProj pic1.png|centre]]&lt;br /&gt;
&lt;br /&gt;
Currently it is implemented fully in HTML which is hard to read and is also not dynamic.&lt;br /&gt;
&lt;br /&gt;
===Proposed solution=== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:FinalProj_pic1.png&amp;diff=105021</id>
		<title>File:FinalProj pic1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:FinalProj_pic1.png&amp;diff=105021"/>
		<updated>2016-11-09T21:50:10Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: uploaded a new version of &amp;amp;quot;File:FinalProj pic1.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=104798</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=104798"/>
		<updated>2016-11-08T23:34:33Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== E1691 Convert Assignment Creation Form to ReactJS ==&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
===React JS===&lt;br /&gt;
ReactJS is an open source JavaScript library, used to provide a view for data rendered as HTML.It is maintained by Facebook, Instagram and a community of individual developers and corporations. React was created by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012. It was open-sourced at JSConf US in May 2013.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current implementation=== &lt;br /&gt;
The assignment creating page view is as follows.&lt;br /&gt;
[[File:FinalProj pic1.png]]&lt;br /&gt;
&lt;br /&gt;
Currently it is implemented fully in HTML which is hard to read and is  also not dynamic.&lt;br /&gt;
&lt;br /&gt;
===Proposed solution=== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=104354</id>
		<title>CSC/ECE 517 Fall 2016 E1691 ConvertAssignmentCreationFormtoReactJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1691_ConvertAssignmentCreationFormtoReactJS&amp;diff=104354"/>
		<updated>2016-11-04T17:40:52Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== E1691 Convert Assignment Creation Form to ReactJS ==&lt;br /&gt;
&lt;br /&gt;
This a page to describe a final project for ECE517. In this project we will be converting Assignment creation form to ReactJS. &lt;br /&gt;
&lt;br /&gt;
==React JS==&lt;br /&gt;
ReactJS is an open source JavaScript library&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current implementation=== &lt;br /&gt;
&lt;br /&gt;
===ReactJS introduction===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*https://facebook.github.io/react/&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103066</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103066"/>
		<updated>2016-10-28T21:33:17Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: /* New Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Expertiza==&lt;br /&gt;
Expertiza is an Open Source Software project developed by NCSU through which students can submit and peer-review learning objects such as articles, codes, web-sites etc. It is a web application built on Ruby on Rails framework.&lt;br /&gt;
&lt;br /&gt;
==Current Implementation==&lt;br /&gt;
In the current implementation only the students can sign up for topics. Because of this, no higher authority (e.g instructor) can control the signups in a straightforward manner. If the instructor wishes to assign a particular topic to a team or remove a team from a particular topic then the instructor has to impersonate that student and sign up for the topic. Due, to the current implementation, you can neither handle the mistakes in signups , nor make modifications to the existing signups without impersonation.&lt;br /&gt;
&lt;br /&gt;
==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic.This functionality has been added in views/sign_up_sheet/_all_actions.html.erb which now has a '+' sign to assign a topic to a particular user. If the instructor clicks on this, then a view will appear which takes in the username of a student to be added.  When the box is filled out and the “add” button clicked, then the indicated user’s team is signed up for the topic. If there are no slots available for that topic then the team will be put on the waiting list. There is also a 'X' sign that will help the instructor to remove a team from a topic.&lt;br /&gt;
&lt;br /&gt;
Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic. The instructor might want to drop a team from the topic if the team doesn't want to proceed with the same topic for the assignment. With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
Functions added to implement functionality :-&lt;br /&gt;
* update_team&lt;br /&gt;
* assign_topic&lt;br /&gt;
* remove_team&lt;br /&gt;
* remove_topic&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
The system checks that the topic is not being assigned again to the same team that has the topic.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png]][[File:New_View.png]]&lt;br /&gt;
&lt;br /&gt;
Two additional icons have been added in the Actions column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
[[File:Add_Team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation.&lt;br /&gt;
[[File:Team_Added.png|centre]]&lt;br /&gt;
&lt;br /&gt;
In case the topic has already been assigned the maximum number of teams, the new team is added to the waitlist.&lt;br /&gt;
[[File:Waitlisting.png|centre]]&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_Team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
==Scope for Improvement==&lt;br /&gt;
The system can take in individual users who don't have a team or topic and can add him/her to the existing teams that are enrolled for the topic.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103035</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103035"/>
		<updated>2016-10-28T21:11:10Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Expertiza==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. It is an efficient assignment management portal that allows instructor to create new assignments as well modify existing assignments which in turn have multiple topics for which students can sign up for. Students can form teams in Expertiza to work on the assignments and Expertiza also provides functionality to advertise for team members. Students can peer review other submissions and provide feedback about the same. &lt;br /&gt;
&lt;br /&gt;
==Current Implementation==&lt;br /&gt;
In the current implementation only the students can sign up for topics. Because of this, no higher authority (e.g instructor) can control the signups in a straightforward manner. If the instructor wishes to assign a particular topic to a team or remove a team from a particular topic then the instructor has to impersonate that student and sign up for the topic. Due, to the current implementation, you can neither handle the mistakes in signups , nor make modifications to the existing signups without impersonation.&lt;br /&gt;
&lt;br /&gt;
==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic.This functionality has been added in views/sign_up_sheet/_all_actions.html.erb which now has a '+' sign to assign a topic to a particular user. If the instructor clicks on this, then a view will appear which takes in the username of a student to be added.  When the box is filled out and the “search” button clicked, then the indicated user’s team is signed up for the topic. If there are no slots available for that topic then the team will be put on the waiting list. There is also a 'X' sign that will help the instructor to remove a team from a topic.&lt;br /&gt;
&lt;br /&gt;
Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic. The instructor might want to drop a team from the topic if the team doesn't want to proceed with the same topic for the assignment. With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
Functions added to implement functionality :-&lt;br /&gt;
* update_team&lt;br /&gt;
* assign_topic&lt;br /&gt;
* remove_team&lt;br /&gt;
* remove_topic&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
The system checks that the topic is not being assigned again to the same team that has the topic.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png]][[File:New_View.png]]&lt;br /&gt;
&lt;br /&gt;
Two additional icons have been added in the Actions column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
[[File:Add_Team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation.&lt;br /&gt;
[[File:Team_Added.png|centre]]&lt;br /&gt;
&lt;br /&gt;
In case the topic has already been assigned the maximum number of teams, the new team is added to the waitlist.&lt;br /&gt;
[[File:Waitlisting.png|centre]]&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_Team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
==Scope for Improvement==&lt;br /&gt;
The system can take in individual users who don't have a team or topic and can add him/her to the existing teams that are enrolled for the topic.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103033</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103033"/>
		<updated>2016-10-28T21:09:35Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: Added references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Expertiza==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. It is an efficient assignment management portal that allows instructor to create new assignments as well modify existing assignments which in turn have multiple topics for which students can sign up for. Students can form teams in Expertiza to work on the assignments and Expertiza also provides functionality to advertise for team members. Students can peer review other submissions and provide feedback about the same. &lt;br /&gt;
&lt;br /&gt;
==Current Implementation==&lt;br /&gt;
In the current implementation only the students can sign up for topics. Because of this, no higher authority (e.g instructor) can control the signups in a straightforward manner. If the instructor wishes to assign a particular topic to a team or remove a team from a particular topic then the instructor has to impersonate that student and sign up for the topic. Due, to the current implementation, you can neither handle the mistakes in signups , nor make modifications to the existing signups without impersonation.&lt;br /&gt;
&lt;br /&gt;
==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic.This functionality has been added in views/sign_up_sheet/_all_actions.html.erb which now has a '+' sign to assign a topic to a particular user. If the instructor clicks on this, then a view will appear which takes in the username of a student to be added.  When the box is filled out and the “search” button clicked, then the indicated user’s team is signed up for the topic. If there are no slots available for that topic then the team will be put on the waiting list. There is also a 'X' sign that will help the instructor to remove a team from a topic.&lt;br /&gt;
&lt;br /&gt;
Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic. The instructor might want to drop a team from the topic if the team doesn't want to proceed with the same topic for the assignment. With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
Functions added to implement functionality :-&lt;br /&gt;
* update_team&lt;br /&gt;
* assign_topic&lt;br /&gt;
* remove_team&lt;br /&gt;
* remove_topic&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
The system checks that the topic is not being assigned again to the same team that has the topic.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png]][[File:New_View.png]]&lt;br /&gt;
&lt;br /&gt;
Two additional icons have been added in the Actions column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
[[File:Add_Team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation.&lt;br /&gt;
[[File:Team_Added.png|centre]]&lt;br /&gt;
&lt;br /&gt;
In case the topic has already been assigned the maximum number of teams, the new team is added to the waitlist.&lt;br /&gt;
[[File:Waitlisting.png|centre]]&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_Team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
==Scope for Improvement==&lt;br /&gt;
The system can take in individual users who don't have a team or topic and can add him/her to the existing teams that are enrolled for the topic.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103028</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103028"/>
		<updated>2016-10-28T21:06:02Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Expertiza==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. It is an efficient assignment management portal that allows instructor to create new assignments as well modify existing assignments which in turn have multiple topics for which students can sign up for. Students can form teams in Expertiza to work on the assignments and Expertiza also provides functionality to advertise for team members. Students can peer review other submissions and provide feedback about the same. &lt;br /&gt;
&lt;br /&gt;
==Current Implementation==&lt;br /&gt;
In the current implementation only the students can sign up for topics. Because of this, no higher authority (e.g instructor) can control the signups in a straightforward manner. If the instructor wishes to assign a particular topic to a team or remove a team from a particular topic then the instructor has to impersonate that student and sign up for the topic. Due, to the current implementation, you can neither handle the mistakes in signups , nor make modifications to the existing signups without impersonation.&lt;br /&gt;
&lt;br /&gt;
==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic.This functionality has been added in views/sign_up_sheet/_all_actions.html.erb which now has a '+' sign to assign a topic to a particular user. If the instructor clicks on this, then a view will appear which takes in the username of a student to be added.  When the box is filled out and the “search” button clicked, then the indicated user’s team is signed up for the topic. If there are no slots available for that topic then the team will be put on the waiting list. There is also a 'X' sign that will help the instructor to remove a team from a topic.&lt;br /&gt;
&lt;br /&gt;
Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic. The instructor might want to drop a team from the topic if the team doesn't want to proceed with the same topic for the assignment. With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
Functions added to implement functionality :-&lt;br /&gt;
* update_team&lt;br /&gt;
* assign_topic&lt;br /&gt;
* remove_team&lt;br /&gt;
* remove_topic&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
The system checks that the topic is not being assigned again to the same team that has the topic.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png]][[File:New_View.png]]&lt;br /&gt;
&lt;br /&gt;
Two additional icons have been added in the Actions column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
[[File:Add_Team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation.&lt;br /&gt;
[[File:Team_Added.png|centre]]&lt;br /&gt;
&lt;br /&gt;
In case the topic has already been assigned the maximum number of teams, the new team is added to the waitlist.&lt;br /&gt;
[[File:Waitlisting.png|centre]]&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_Team.png|centre]]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103025</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=103025"/>
		<updated>2016-10-28T21:04:51Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: Added images to the functionality section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Expertiza==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework. It is an efficient assignment management portal that allows instructor to create new assignments as well modify existing assignments which in turn have multiple topics for which students can sign up for. Students can form teams in Expertiza to work on the assignments and Expertiza also provides functionality to advertise for team members. Students can peer review other submissions and provide feedback about the same. &lt;br /&gt;
&lt;br /&gt;
==Current Implementation==&lt;br /&gt;
In the current implementation only the students can sign up for topics. Because of this, no higher authority (e.g instructor) can control the signups in a straightforward manner. If the instructor wishes to assign a particular topic to a team or remove a team from a particular topic then the instructor has to impersonate that student and sign up for the topic. Due, to the current implementation, you can neither handle the mistakes in signups , nor make modifications to the existing signups without impersonation.&lt;br /&gt;
&lt;br /&gt;
==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic.This functionality has been added in views/sign_up_sheet/_all_actions.html.erb which now has a '+' sign to assign a topic to a particular user. If the instructor clicks on this, then a view will appear which takes in the username of a student to be added.  When the box is filled out and the “search” button clicked, then the indicated user’s team is signed up for the topic. If there are no slots available for that topic then the team will be put on the waiting list. There is also a 'X' sign that will help the instructor to remove a team from a topic.&lt;br /&gt;
&lt;br /&gt;
Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic. The instructor might want to drop a team from the topic if the team doesn't want to proceed with the same topic for the assignment. With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
Functions added to implement functionality :-&lt;br /&gt;
* update_team&lt;br /&gt;
* assign_topic&lt;br /&gt;
* remove_team&lt;br /&gt;
* remove_topic&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
The system checks that the topic is not being assigned again to the same team that has the topic.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png]][[File:New_View.png]]&lt;br /&gt;
&lt;br /&gt;
Two additional icons have been added in the Actions column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
[[File:Add_team.png|centre]]&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation.&lt;br /&gt;
[[File:Team_Added.png|centre]]&lt;br /&gt;
&lt;br /&gt;
In case the topic has already been assigned the maximum number of teams, the new team is added to the waitlist.&lt;br /&gt;
[[File:Waitlisting.png|centre]]&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_Team.png|centre]]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Add_Team.png&amp;diff=103023</id>
		<title>File:Add Team.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Add_Team.png&amp;diff=103023"/>
		<updated>2016-10-28T21:04:00Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102990</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102990"/>
		<updated>2016-10-28T20:49:58Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Current Implementation==&lt;br /&gt;
In the current implementation only the students can sign up for topics. Because of this, no higher authority (e.g instructor) can control the signups. If the instructor wishes to assign a particular topic to a team or remove a team from a particular topic then the instructor has to impersonate that student and sign up for the topic.&lt;br /&gt;
Due, to the current implementation, you can neither handle the mistakes in signups , nor make modifications to the existing signups without impersonation.&lt;br /&gt;
&lt;br /&gt;
==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic.This functionality has been added in views/sign_up_sheet/_all_actions.html.erb which now has a '+' sign to assign a topic to a particular user. If the instructor clicks on this, then a view will appear which takes in the username of a student to be added.  When the box is filled out and the “search” button clicked, then the indicated user’s team is signed up for the topic. If there are no slots available for that topic then the team will be put on the waiting list. There is also a 'X' sign that will help the instructor to remove a team from a topic.&lt;br /&gt;
&lt;br /&gt;
Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic. The instructor might want to drop a team from the topic if the team doesn't want to proceed with the same topic for the assignment. With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
Functions added to implement functionality :-&lt;br /&gt;
* update_team&lt;br /&gt;
* assign_topic&lt;br /&gt;
* remove_team&lt;br /&gt;
* remove_topic&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png]][[File:New_View.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Team_Added.png]] [[File:Waitlisting.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_Team.png]]&lt;br /&gt;
&lt;br /&gt;
Two additional icons have been added in the something column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation, as well as the cause in case of a failure.&lt;br /&gt;
image_form_addteam, image_mainpage_success&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
image_form_removeteam, image_mainpage_success&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Remove_Team.png&amp;diff=102988</id>
		<title>File:Remove Team.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Remove_Team.png&amp;diff=102988"/>
		<updated>2016-10-28T20:49:28Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Waitlisting.png&amp;diff=102980</id>
		<title>File:Waitlisting.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Waitlisting.png&amp;diff=102980"/>
		<updated>2016-10-28T20:47:45Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Team_Added.png&amp;diff=102972</id>
		<title>File:Team Added.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Team_Added.png&amp;diff=102972"/>
		<updated>2016-10-28T20:45:54Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102957</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102957"/>
		<updated>2016-10-28T20:41:27Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic. Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png]][[File:New_View.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two additional icons have been added in the something column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation, as well as the cause in case of a failure.&lt;br /&gt;
image_form_addteam, image_mainpage_success&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
image_form_removeteam, image_mainpage_success&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102948</id>
		<title>File:Previous View.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102948"/>
		<updated>2016-10-28T20:39:32Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: uploaded a new version of &amp;amp;quot;File:Previous View.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Previous view for CSC/ECE_517_Fall_2016/oss_E1649_KPS&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102930</id>
		<title>File:Previous View.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102930"/>
		<updated>2016-10-28T20:33:43Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: uploaded a new version of &amp;amp;quot;File:Previous View.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Previous view for CSC/ECE_517_Fall_2016/oss_E1649_KPS&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102925</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102925"/>
		<updated>2016-10-28T20:27:32Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic. Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png|centre]]&lt;br /&gt;
&lt;br /&gt;
[[File:New_View.png|centre]]&lt;br /&gt;
&lt;br /&gt;
2 additional icons have been added in the something column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation, as well as the cause in case of a failure.&lt;br /&gt;
image_form_addteam, image_mainpage_success&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
image_form_removeteam, image_mainpage_success&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View.png&amp;diff=102923</id>
		<title>File:New View.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View.png&amp;diff=102923"/>
		<updated>2016-10-28T20:25:54Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: uploaded a new version of &amp;amp;quot;File:New View.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102916</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102916"/>
		<updated>2016-10-28T20:20:11Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic. Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlist of topics are made as well.&lt;br /&gt;
The system will throw an error if the username of an invalid user is used to search for teams associated with the user.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:Previous_View.png|centre]]&lt;br /&gt;
&lt;br /&gt;
2 additional icons have been added in the something column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation, as well as the cause in case of a failure.&lt;br /&gt;
image_form_addteam, image_mainpage_success&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
image_form_removeteam, image_mainpage_success&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View.png&amp;diff=102901</id>
		<title>File:New View.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View.png&amp;diff=102901"/>
		<updated>2016-10-28T20:08:16Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: uploaded a new version of &amp;amp;quot;File:New View.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102792</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102792"/>
		<updated>2016-10-28T18:22:03Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: Added the 'functionality' sub-heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic. Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic.\\&lt;br /&gt;
With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlists of topics are made as well.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:New_View.png|centre]]&lt;br /&gt;
&lt;br /&gt;
2 additional icons have been added in the something column. The ‘green plus’ icon allows you to add a team to the current topic.&lt;br /&gt;
Clicking on the icon redirects you to a form, where the admin is required to enter the username of the person whose team he wishes to add.&lt;br /&gt;
&lt;br /&gt;
Clicking submit then redirects back to the original page, with a flash message containing the status of the operation, as well as the cause in case of a failure.&lt;br /&gt;
image_form_addteam, image_mainpage_success&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'red cross' icon is used to remove a team from the given topic. Clicking on it takes the admin to a form, where he is required to enter the username of one of the team members belonging to the team that is to be removed. Submitting the form redirects the user back to the original page, with a flash message indicating the status of the remove operation.&lt;br /&gt;
&lt;br /&gt;
image_form_removeteam, image_mainpage_success&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102786</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102786"/>
		<updated>2016-10-28T17:54:51Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: Tested adding an image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic. Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic.\\&lt;br /&gt;
With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
===update_team===&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlists of topics are made as well.&lt;br /&gt;
&lt;br /&gt;
===remove_team===&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Functionality==&lt;br /&gt;
&lt;br /&gt;
[[File:New_View.png]]&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View.png&amp;diff=102785</id>
		<title>File:New View.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:New_View.png&amp;diff=102785"/>
		<updated>2016-10-28T17:53:47Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102783</id>
		<title>File:Previous View.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102783"/>
		<updated>2016-10-28T17:48:33Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: uploaded a new version of &amp;amp;quot;File:Previous View.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Previous view for CSC/ECE_517_Fall_2016/oss_E1649_KPS&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102717</id>
		<title>File:Previous View.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Previous_View.png&amp;diff=102717"/>
		<updated>2016-10-28T14:34:51Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: Previous view for CSC/ECE_517_Fall_2016/oss_E1649_KPS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Previous view for CSC/ECE_517_Fall_2016/oss_E1649_KPS&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102668</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102668"/>
		<updated>2016-10-28T04:29:22Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: First draft of 'new implementation'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==New Implementation==&lt;br /&gt;
The new implementation allows an instructor to assign a particular topic to a team as well as remove a team from a topic. Some of the scenarios where the instructor might wish to add a team would be if the sign up deadline has passed, or if the instructor has decided to update the maximum number of teams allowed to choose a particular topic.\\&lt;br /&gt;
With the new implementation, Instructors/Teaching Assistants do not need to go through the trouble of impersonating a student in order to add or drop their team from topics.&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files - &lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;br /&gt;
* views/sign_up_sheet/remove_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
In the sign_up_sheet controller, two major methods were added:&lt;br /&gt;
&lt;br /&gt;
====update_team====&lt;br /&gt;
This method allows an admin user to add a team to a particular topic, based on the username of any member of said team. If the number of teams already assigned to the topic is greater than or equal to the maximum number of teams allowed to pick the topic, the new team is added to the waitlist.&lt;br /&gt;
If a team was previously assigned a topic, and are then added by an admin to a new topic, their association with the old topic is deleted, and the required changes to the waitlists of topics are made as well.&lt;br /&gt;
&lt;br /&gt;
====remove_team====&lt;br /&gt;
This method allows the admin to remove teams from a given topic, based on the username of a team member. First, a check is done to ensure that the team is indeed associated with the given topic. If this is the case, the entry is deleted from the table sign_up_teams, and the corresponding changes are made to the waitlist as well.&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102609</id>
		<title>CSC/ECE 517 Fall 2016/oss E1649 KPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/oss_E1649_KPS&amp;diff=102609"/>
		<updated>2016-10-28T01:37:25Z</updated>

		<summary type="html">&lt;p&gt;Kbasuch: Created page with &amp;quot; Implementation  Changes were made in the following files- * controllers/sign_up_sheet_controller.rb * views/sign_up_sheet/_all_actions.html.erb * views/sign_up_sheet/assign_topi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Implementation&lt;br /&gt;
&lt;br /&gt;
Changes were made in the following files-&lt;br /&gt;
* controllers/sign_up_sheet_controller.rb&lt;br /&gt;
* views/sign_up_sheet/_all_actions.html.erb&lt;br /&gt;
* views/sign_up_sheet/assign_topic.html.erb&lt;/div&gt;</summary>
		<author><name>Kbasuch</name></author>
	</entry>
</feed>