<?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=Npandey</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=Npandey"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Npandey"/>
	<updated>2026-06-30T00:50:45Z</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_2013/oss_ans&amp;diff=82457</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=82457"/>
		<updated>2013-11-14T05:34:24Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Steps to test the application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics.&lt;br /&gt;
Responses are typically reviews, metareviews or feedback depending upon the stage of the current project. &lt;br /&gt;
Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because , similar code existed in the response view&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* We created a new method in order to find the latest response thereby by eliminating the need to reuse the following code multiple times.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def latestResponseVersion&lt;br /&gt;
    #get all previous versions of responses for the response map.&lt;br /&gt;
    array_not_empty=0&lt;br /&gt;
    @review_scores=Array.new&lt;br /&gt;
    @prev=Response.find_by_map_id(@map.id)&lt;br /&gt;
    for element in @prev&lt;br /&gt;
      array_not_empty=1&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; element&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Integration tests for capybara were created for the scenarios describing admin login, creation of an assignment by admin and user login.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called. This method would be much more efficient than the current way the functionality is being handled also it would be more O-O like.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller, further improvements can be done to the code: &lt;br /&gt;
&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Steps to test the application ===&lt;br /&gt;
&lt;br /&gt;
* An admin needs to create a minimum of two users who will participate in the same assignment - In our case - '''newassign'''.&lt;br /&gt;
* The login credentials for admin are:&lt;br /&gt;
   '''Username: admin&lt;br /&gt;
   Password: password'''&lt;br /&gt;
* Then the admin needs to create one assignment (&amp;quot;assignnew&amp;quot; in our case) and add details such as due dates, review strategy etc... &lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, impersonate user (&amp;quot;sallie&amp;quot;) through the admin account. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* Do the same for Bart.&lt;br /&gt;
* Submit the assignment link from Bart's login.&lt;br /&gt;
* Now impersonate &amp;quot;sallie&amp;quot; again and then go to other's work in the list and then select the topic that Bart submitted.&lt;br /&gt;
* Click on begin to begin review.&lt;br /&gt;
&lt;br /&gt;
(Please take care that the stage deadline of the assignment is in &amp;quot;Review&amp;quot; phase)&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes to the routes.rb file.&lt;br /&gt;
* Assignment submission status was not being changed in spite of changing the deadline due-dates in the edit assignment section for the admin.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=82456</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=82456"/>
		<updated>2013-11-14T05:30:55Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Setup Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics.&lt;br /&gt;
Responses are typically reviews, metareviews or feedback depending upon the stage of the current project. &lt;br /&gt;
Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because , similar code existed in the response view&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* We created a new method in order to find the latest response thereby by eliminating the need to reuse the following code multiple times.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def latestResponseVersion&lt;br /&gt;
    #get all previous versions of responses for the response map.&lt;br /&gt;
    array_not_empty=0&lt;br /&gt;
    @review_scores=Array.new&lt;br /&gt;
    @prev=Response.find_by_map_id(@map.id)&lt;br /&gt;
    for element in @prev&lt;br /&gt;
      array_not_empty=1&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; element&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Integration tests for capybara were created for the scenarios describing admin login, creation of an assignment by admin and user login.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called. This method would be much more efficient than the current way the functionality is being handled also it would be more O-O like.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller, further improvements can be done to the code: &lt;br /&gt;
&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Steps to test the application ===&lt;br /&gt;
&lt;br /&gt;
* An admin needs to create a minimum of two users who will participate in the same assignment - In our case - newassign.&lt;br /&gt;
* The login credentials for admin are:&lt;br /&gt;
   Username: admin&lt;br /&gt;
   Password: password&lt;br /&gt;
* Then the admin needs to create one assignment (&amp;quot;assignnew&amp;quot; in our case) and add details such as due dates, review strategy etc... &lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, impersonate user (&amp;quot;sallie&amp;quot;) through the admin account. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* Do the same for Bart.&lt;br /&gt;
* Submit the assignment link from Bart's login.&lt;br /&gt;
* Now impersonate &amp;quot;sallie&amp;quot; again and then go to other's work in the list and then select the topic that Bart submitted.&lt;br /&gt;
* Click on begin to begin review.&lt;br /&gt;
&lt;br /&gt;
(Please take care that the stage deadline of the assignment is in &amp;quot;Review&amp;quot; phase)&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes to the routes.rb file.&lt;br /&gt;
* Assignment submission status was not being changed in spite of changing the deadline due-dates in the edit assignment section for the admin.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81251</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81251"/>
		<updated>2013-10-30T20:07:09Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because , similar code existed in the response view&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* We created a new method in order to find the latest response thereby by eliminating the need to reuse the following code multiple times.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def latestResponseVersion&lt;br /&gt;
    #get all previous versions of responses for the response map.&lt;br /&gt;
    array_not_empty=0&lt;br /&gt;
    @review_scores=Array.new&lt;br /&gt;
    @prev=Response.find_by_map_id(@map.id)&lt;br /&gt;
    for element in @prev&lt;br /&gt;
      array_not_empty=1&lt;br /&gt;
      @review_scores &amp;lt;&amp;lt; element&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called. This method would be much more efficient than the current way the functionality is being handled also it would be more O-O like.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81229</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81229"/>
		<updated>2013-10-30T19:54:49Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because , similar code existed in the response view&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called. This method would be much more efficient than the current way the functionality is being handled also it would be more O-O like.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81149</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81149"/>
		<updated>2013-10-30T19:16:53Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because , similar code existed in the response view&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called. This method would be much more efficient than the current way the functionality is being handled also it would be more O-O like.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81147</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81147"/>
		<updated>2013-10-30T19:16:14Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because , similar code existed in the response view&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called. This method would be much more efficient than the current way the functionality is being handled also it would be more O-O like.&lt;br /&gt;
* The project still contains a lot of legacy code for past assignments which should be removed in order to have a cleaner code.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81145</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81145"/>
		<updated>2013-10-30T19:13:32Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Refactoring carried out */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because , similar code existed in the response view&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The project still contains a lot of legacy code for past assignments which should be removed in order to have a cleaner code.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81139</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81139"/>
		<updated>2013-10-30T19:09:43Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Refactoring carried out */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
if !@topic_id.nil?&lt;br /&gt;
        @signedUpTopic = SignUpTopic.find(@topic_id).topic_name&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The project still contains a lot of legacy code for past assignments which should be removed in order to have a cleaner code.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81137</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81137"/>
		<updated>2013-10-30T19:09:19Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Refactoring carried out */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if !@map.contributor.nil?&lt;br /&gt;
        if @map.assignment.team_assignment?&lt;br /&gt;
          team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
          @topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
        else&lt;br /&gt;
          @topic_id = Participant.find(@map.contributor).topic_id&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The project still contains a lot of legacy code for past assignments which should be removed in order to have a cleaner code.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81134</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81134"/>
		<updated>2013-10-30T19:08:55Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Refactoring carried out */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The project still contains a lot of legacy code for past assignments which should be removed in order to have a cleaner code.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81129</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81129"/>
		<updated>2013-10-30T19:07:24Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
  &amp;lt;%= render :partial =&amp;gt; 'submitted_content/main', :locals =&amp;gt; {:participant =&amp;gt; @map.contributor, :stage =&amp;gt;  @assignment.get_current_stage()} %&amp;gt;&lt;br /&gt;
  &amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The project still contains a lot of legacy code for past assignments which should be removed in order to have a cleaner code.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81118</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81118"/>
		<updated>2013-10-30T19:04:43Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Appendix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
  &amp;lt;%= render :partial =&amp;gt; 'submitted_content/main', :locals =&amp;gt; {:participant =&amp;gt; @map.contributor, :stage =&amp;gt;  @assignment.get_current_stage()} %&amp;gt;&lt;br /&gt;
  &amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81117</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81117"/>
		<updated>2013-10-30T19:04:19Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Refactoring carried out */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view. The following code snippet was removed from the response controller.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
  &amp;lt;%= render :partial =&amp;gt; 'submitted_content/main', :locals =&amp;gt; {:participant =&amp;gt; @map.contributor, :stage =&amp;gt;  @assignment.get_current_stage()} %&amp;gt;&lt;br /&gt;
  &amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81112</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81112"/>
		<updated>2013-10-30T19:01:29Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
  &amp;lt;%= render :partial =&amp;gt; 'submitted_content/main', :locals =&amp;gt; {:participant =&amp;gt; @map.contributor, :stage =&amp;gt;  @assignment.get_current_stage()} %&amp;gt;&lt;br /&gt;
  &amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
* The rubric model has been created but has not been used anywhere in the code.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81106</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81106"/>
		<updated>2013-10-30T19:00:31Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
  &amp;lt;%= render :partial =&amp;gt; 'submitted_content/main', :locals =&amp;gt; {:participant =&amp;gt; @map.contributor, :stage =&amp;gt;  @assignment.get_current_stage()} %&amp;gt;&lt;br /&gt;
  &amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81105</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81105"/>
		<updated>2013-10-30T19:00:14Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
  &amp;lt;%= render :partial =&amp;gt; 'submitted_content/main', :locals =&amp;gt; {:participant =&amp;gt; @map.contributor, :stage =&amp;gt;  @assignment.get_current_stage()} %&amp;gt;&lt;br /&gt;
  &amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
=== Design Changes ===&lt;br /&gt;
* * An even better way to handle the rubrics would be to do subclassing of the questionnaire model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
=== Further Refactoring ===&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81093</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81093"/>
		<updated>2013-10-30T18:57:22Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% if !@map.contributor.nil?%&amp;gt;&lt;br /&gt;
  &amp;lt;%if @map.assignment.team_assignment?&lt;br /&gt;
        team_member = TeamsUser.find_by_team_id(@map.contributor).user_id&lt;br /&gt;
        topic_id = Participant.find_by_parent_id_and_user_id(@map.assignment.id,team_member).topic_id&lt;br /&gt;
    else%&amp;gt;&lt;br /&gt;
        &amp;lt;% topic_id = Participant.find(@map.contributor).topic_id%&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;  &lt;br /&gt;
  &amp;lt;%if !topic_id.nil?%&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;You are reviewing &amp;lt;%=SignUpTopic.find(topic_id).topic_name%&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;%end%&amp;gt;&lt;br /&gt;
  &amp;lt;%= render :partial =&amp;gt; 'submitted_content/main', :locals =&amp;gt; {:participant =&amp;gt; @map.contributor, :stage =&amp;gt;  @assignment.get_current_stage()} %&amp;gt;&lt;br /&gt;
  &amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81089</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81089"/>
		<updated>2013-10-30T18:55:44Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
* After that, response view would be rendered to the reviewer.&lt;br /&gt;
* The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
* If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81087</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81087"/>
		<updated>2013-10-30T18:55:08Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* The admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc.&lt;br /&gt;
* Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. &lt;br /&gt;
* Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
* Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
After that, response view would be rendered to the reviewer. The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81083</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=81083"/>
		<updated>2013-10-30T18:54:07Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application.&lt;br /&gt;
* Next we created our own users and a new assignment to understand the working of the response controller.&lt;br /&gt;
* First of all, an admin needs to create a minimum of two users who will participate in the same assignment. &lt;br /&gt;
* Then the admin needs to create one assignment and add participants to the assignment. Further details of the assignment need to be added as necessary such as due dates, review strategy etc. Review strategy can be auto selected or student selected. If the TA or instructor is manually assigning the assignments for review, it has to be “instructor selected”. Check the &amp;quot;Due dates&amp;quot; tab and check if the review is allowed at the current date. Update due dates so that the review date starts after the submission date is passed. Save dependencies.&lt;br /&gt;
Add a signup sheet to the assignment. This sheet will display topics which the users can select to review.&lt;br /&gt;
* Now, login through user1 account and select an assignment. Then sign up for one topic from the list of available topics.&lt;br /&gt;
* After that, user1 needs to submit a hyperlink.&lt;br /&gt;
* Now, login through user2 credentials. User2 must select the assignment(of which it was made a participant by the admin).&lt;br /&gt;
* User2 must go to the student_task page and select the link &amp;quot;other's work&amp;quot; which will be enabled only if a particular topic of an assignment has review_allowed to be true, that means the deadline should be properly configured by the admin. &lt;br /&gt;
&lt;br /&gt;
After that, response view would be rendered to the reviewer. The reviewer would review the assignment submitted by user1. Once the review has been saved, user1 will have an option to provide feedback on the review.&lt;br /&gt;
If meta reviews have been enabled by the admin, then the other participants will be able to see the reviews of other users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80517</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80517"/>
		<updated>2013-10-30T03:31:51Z</updated>

		<summary type="html">&lt;p&gt;Npandey: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
* The purpose of saving method is not quite clear. It predominantly has the code for an assignment '562' which has been hard coded and can be removed.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80516</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80516"/>
		<updated>2013-10-30T03:22:48Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80515</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80515"/>
		<updated>2013-10-30T03:22:37Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80514</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80514"/>
		<updated>2013-10-30T03:21:53Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc)&lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80513</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80513"/>
		<updated>2013-10-30T03:21:31Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc)&lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80512</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80512"/>
		<updated>2013-10-30T03:21:17Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc)&lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
* An even better way to handle the rubrics would be to do subclassing of the rubric model in order to create two sub classes the rating rubric and the multipart rubric. As per the rubric being rendered the appropriate class would be called.&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80511</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80511"/>
		<updated>2013-10-30T03:18:34Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc)&lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80510</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80510"/>
		<updated>2013-10-30T03:18:12Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project Description == &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80509</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80509"/>
		<updated>2013-10-30T03:16:54Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80507</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80507"/>
		<updated>2013-10-30T03:15:35Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
=== Setup Process ===&lt;br /&gt;
* We cloned the repo from https://github.com/expertiza/expertiza into our local directory.&lt;br /&gt;
* After installing MySQL server we loaded the test-db.sql sample database into the application&lt;br /&gt;
* In order to get the application working properly we added several routes in the routes.rb file.&lt;br /&gt;
&lt;br /&gt;
=== Issues Encountered ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80506</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80506"/>
		<updated>2013-10-30T03:14:06Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
:1. [http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza]&lt;br /&gt;
&lt;br /&gt;
:2. [http://152.7.99.43:3000/ VCL Link]&lt;br /&gt;
&lt;br /&gt;
:3. [https://github.com/nixtish/expertiza Git repository]&lt;br /&gt;
&lt;br /&gt;
:4. [https://docs.google.com/a/ncsu.edu/document/d/1Z0xjFZu-Zy-xm73YyUVUgFCtfWgRwhN1rZuThoyF-U0/edit Steps to setup Expertiza]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80501</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80501"/>
		<updated>2013-10-30T03:08:45Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller.&lt;br /&gt;
* Remove duplicated code.&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80499</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80499"/>
		<updated>2013-10-30T03:07:54Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
Given the current state of the response controller there is still a lot of work that can be done in order to further improve the code. Based on our findings the following things can be done :&lt;br /&gt;
* The controller still has some code that is only there for some specific assignments. This is bad design and this code needs to be removed.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80496</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80496"/>
		<updated>2013-10-30T03:05:59Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
Capybara tests were created for the response controller in order to carry out integration testing.&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80494</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80494"/>
		<updated>2013-10-30T03:05:02Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Refactoring carried out ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Done ==&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80493</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80493"/>
		<updated>2013-10-30T03:04:09Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
As per the project requirements the following work was carried out :&lt;br /&gt;
&lt;br /&gt;
* The duplicated code has been refactored and put in a separate method which is called wherever required. This prevents redundancy.&lt;br /&gt;
* The variables set up in controller become automatically available to the views. Hence the repeated code from controller and view for finding the topic id signed up by a user/team has been deleted from controller and incorporated only in the response view.&lt;br /&gt;
* The custom create and custom update methods have been removed. Their functionality has been merged with create and update methods as was mentioned in the requirement specification. Depending on the type of rubric rendered, the create and update method does the necessary updations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Refactoring carried out ===&lt;br /&gt;
&lt;br /&gt;
=== Testing Done ===&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80492</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80492"/>
		<updated>2013-10-30T03:02:21Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Refactoring carried out ===&lt;br /&gt;
&lt;br /&gt;
=== Testing Done ===&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80491</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80491"/>
		<updated>2013-10-30T03:00:59Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods.&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
=== Refactoring carried out ===&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80490</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80490"/>
		<updated>2013-10-30T03:00:24Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80489</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80489"/>
		<updated>2013-10-30T03:00:07Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics. These methods were only there to handle the multi part rubrics. We already had create and update methods that were handling the normal rubrics. Our job was to use polymorphism in order to eliminate the custom methods&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80488</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80488"/>
		<updated>2013-10-30T02:58:34Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics. Our project requirement entailed the following things to be done.&lt;br /&gt;
&lt;br /&gt;
* Reduce the method complexity in the response controller&lt;br /&gt;
* Remove duplicated code&lt;br /&gt;
* There were “custom_create” and “custom_update” methods for “custom” (multipart) rubrics.  This is a very bad way of achieving this      functionality, because frequent tests are required as to what kind of a rubric is in use.  &lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80485</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80485"/>
		<updated>2013-10-30T02:56:49Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics.&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80484</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80484"/>
		<updated>2013-10-30T02:56:09Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80483</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80483"/>
		<updated>2013-10-30T02:55:48Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E807 : Refactoring and testing response_controller.rb''' &lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ssv&amp;diff=80482</id>
		<title>CSC/ECE 517 Fall 2013/oss ssv</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ssv&amp;diff=80482"/>
		<updated>2013-10-30T02:55:43Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E813. Refactoring and testing — degree_of_relevance.rb =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Existing Design ==&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== New Design and Refactoring ===&lt;br /&gt;
=== How to run the code ===&lt;br /&gt;
&lt;br /&gt;
== Testing == &lt;br /&gt;
== Conclusion ==&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ssv&amp;diff=80481</id>
		<title>CSC/ECE 517 Fall 2013/oss ssv</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ssv&amp;diff=80481"/>
		<updated>2013-10-30T02:55:10Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' E813. Refactoring and testing — degree_of_relevance.rb''' &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Existing Design ==&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== New Design and Refactoring ===&lt;br /&gt;
=== How to run the code ===&lt;br /&gt;
&lt;br /&gt;
== Testing == &lt;br /&gt;
== Conclusion ==&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80480</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80480"/>
		<updated>2013-10-30T02:54:54Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E807 : Refactoring and testing response_controller.rb =&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80478</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80478"/>
		<updated>2013-10-30T02:54:38Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E807 : Refactoring and testing response_controller.rb =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The response controller creates, edits, and displays responses, that is, rubrics to be filled out, or filled-out rubrics.&lt;br /&gt;
&lt;br /&gt;
== Design Choices ==&lt;br /&gt;
&lt;br /&gt;
==Future Work ==&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80463</id>
		<title>CSC/ECE 517 Fall 2013/oss ans</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_ans&amp;diff=80463"/>
		<updated>2013-10-29T23:12:09Z</updated>

		<summary type="html">&lt;p&gt;Npandey: Created page with &amp;quot;OSS E807&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OSS E807&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013&amp;diff=80461</id>
		<title>CSC/ECE 517 Fall 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013&amp;diff=80461"/>
		<updated>2013-10-29T23:11:52Z</updated>

		<summary type="html">&lt;p&gt;Npandey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[ CSC/ECE 517 Fall 2012/ch1 1w23 ph ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w30 nn]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w21 w]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w01 aj]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w24 nv]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w29 rkld]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w25 aras]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w30 ps]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w19 rj]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w18 bs]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w17 pk]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w22 ss]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w12 vn]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w14 st]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w08 cc]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w10 ga ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w26 as ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w27 ma ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w13 aa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w11 sv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w07 d ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w20 gq ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w03 ss ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w28 nm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w02 pp ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1  1w6 zs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1  1w04 y ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w05 st ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w09 hs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w32 av ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w48 x ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w43 av]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w46 ka]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w33 aa]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w35 sa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w39 as ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w31 vm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w43 sm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w44 s ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w47 ka ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w34 fs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w40 ao ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss fmv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss vna ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss paa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss mapFeeds ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ssp ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch2 0e808 nsv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss aoa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss cmh ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ans ]]&lt;/div&gt;</summary>
		<author><name>Npandey</name></author>
	</entry>
</feed>