<?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=Jbcrick</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=Jbcrick"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Jbcrick"/>
	<updated>2026-06-10T04:07:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_M1706&amp;diff=107907</id>
		<title>CSC/ECE 517 Spring 2017/oss M1706</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_M1706&amp;diff=107907"/>
		<updated>2017-04-05T15:19:32Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Student View */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tasks to be completed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===UML Diagram===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Proposed Design===&lt;br /&gt;
&lt;br /&gt;
'''TASK 1''' - &lt;br /&gt;
&lt;br /&gt;
'''TASK 2''' - &lt;br /&gt;
&lt;br /&gt;
==== Design Pattern Used ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Features to be added====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Gems to be used====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metrics View===&lt;br /&gt;
&lt;br /&gt;
====Instructor View====&lt;br /&gt;
&lt;br /&gt;
====Student View====&lt;br /&gt;
&lt;br /&gt;
===Testing Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Files Changed and Added====&lt;br /&gt;
&lt;br /&gt;
====Models====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Controllers====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Views====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Important Links===&lt;br /&gt;
&lt;br /&gt;
Link to Github repository :  &lt;br /&gt;
&lt;br /&gt;
Link to Pull request : &lt;br /&gt;
&lt;br /&gt;
===References===&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_M1706&amp;diff=107905</id>
		<title>CSC/ECE 517 Spring 2017/oss M1706</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_M1706&amp;diff=107905"/>
		<updated>2017-04-05T15:19:20Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Instructor View */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tasks to be completed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===UML Diagram===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Proposed Design===&lt;br /&gt;
&lt;br /&gt;
'''TASK 1''' - &lt;br /&gt;
&lt;br /&gt;
'''TASK 2''' - &lt;br /&gt;
&lt;br /&gt;
==== Design Pattern Used ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Features to be added====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Gems to be used====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metrics View===&lt;br /&gt;
&lt;br /&gt;
====Instructor View====&lt;br /&gt;
&lt;br /&gt;
====Student View====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1677ins1.PNG]]&lt;br /&gt;
 &lt;br /&gt;
===Testing Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Files Changed and Added====&lt;br /&gt;
&lt;br /&gt;
====Models====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Controllers====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Views====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Important Links===&lt;br /&gt;
&lt;br /&gt;
Link to Github repository :  &lt;br /&gt;
&lt;br /&gt;
Link to Pull request : &lt;br /&gt;
&lt;br /&gt;
===References===&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_M1706&amp;diff=107904</id>
		<title>CSC/ECE 517 Spring 2017/oss M1706</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_M1706&amp;diff=107904"/>
		<updated>2017-04-05T15:19:05Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: Created page with &amp;quot;  ===Description===    ===Tasks to be completed===   ===Current Implementation===   ===UML Diagram===    ===Proposed Design===  '''TASK 1''' -   '''TASK 2''' -   ==== Design Patt...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tasks to be completed===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===UML Diagram===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Proposed Design===&lt;br /&gt;
&lt;br /&gt;
'''TASK 1''' - &lt;br /&gt;
&lt;br /&gt;
'''TASK 2''' - &lt;br /&gt;
&lt;br /&gt;
==== Design Pattern Used ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Features to be added====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Gems to be used====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metrics View===&lt;br /&gt;
&lt;br /&gt;
====Instructor View====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1677ins2.PNG]]&lt;br /&gt;
&lt;br /&gt;
====Student View====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:E1677ins1.PNG]]&lt;br /&gt;
 &lt;br /&gt;
===Testing Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Files Changed and Added====&lt;br /&gt;
&lt;br /&gt;
====Models====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Controllers====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Views====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Important Links===&lt;br /&gt;
&lt;br /&gt;
Link to Github repository :  &lt;br /&gt;
&lt;br /&gt;
Link to Pull request : &lt;br /&gt;
&lt;br /&gt;
===References===&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107192</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107192"/>
		<updated>2017-03-23T01:52:44Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: get_topic_bg_color() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, &lt;br /&gt;
                                          deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, &lt;br /&gt;
                                  deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, &lt;br /&gt;
                                  deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: &lt;br /&gt;
                        assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and &lt;br /&gt;
                                                 !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and&lt;br /&gt;
                                                    selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' +&lt;br /&gt;
                  get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id:&lt;br /&gt;
                   topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107190</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107190"/>
		<updated>2017-03-23T01:51:59Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: check_topic_due_date_value() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, &lt;br /&gt;
                                          deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, &lt;br /&gt;
                                  deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, &lt;br /&gt;
                                  deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: &lt;br /&gt;
                        assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and &lt;br /&gt;
                                                 !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and&lt;br /&gt;
                                                    selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' +&lt;br /&gt;
                  get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id:&lt;br /&gt;
       topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107189</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107189"/>
		<updated>2017-03-23T01:51:07Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: get_topic_deadline() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, &lt;br /&gt;
                                  deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: &lt;br /&gt;
                        assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and &lt;br /&gt;
                                                 !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and&lt;br /&gt;
                                                    selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' +&lt;br /&gt;
                  get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id:&lt;br /&gt;
       topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107188</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107188"/>
		<updated>2017-03-23T01:50:42Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: get_suggested_topics() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: &lt;br /&gt;
                        assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and &lt;br /&gt;
                                                 !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and&lt;br /&gt;
                                                    selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' +&lt;br /&gt;
                  get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id:&lt;br /&gt;
       topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107187</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107187"/>
		<updated>2017-03-23T01:50:23Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: get_intelligent_topic_row() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and &lt;br /&gt;
                                                 !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and&lt;br /&gt;
                                                    selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' +&lt;br /&gt;
                  get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id:&lt;br /&gt;
       topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107186</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107186"/>
		<updated>2017-03-23T01:50:01Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: get_intelligent_topic_row() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and &lt;br /&gt;
                                                 !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and&lt;br /&gt;
                                                    selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' + get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id:&lt;br /&gt;
       topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107185</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107185"/>
		<updated>2017-03-23T01:48:54Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: get_topic_bg_color() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' + get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id:&lt;br /&gt;
       topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107184</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107184"/>
		<updated>2017-03-23T01:46:59Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: get_topic_bg_color() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' + get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id: topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107183</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107183"/>
		<updated>2017-03-23T01:45:59Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = []&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics, max_team_size)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; !selected_topics.empty?&lt;br /&gt;
      selected_topics.each do |selected_topic|&lt;br /&gt;
        row_html = if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
                   elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
                     '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
                   else&lt;br /&gt;
                     '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot;&amp;gt;'&lt;br /&gt;
                   end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_' + topic.id.to_s + '&amp;quot; style=&amp;quot;background-color:' + get_topic_bg_color(topic, max_team_size) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic, max_team_size)&lt;br /&gt;
    calculation = (400 * (1 - (Math.tanh(2 * [max_team_size.to_f / Bid.where(topic_id: topic.id).count, 1].min - 1) + 1) / 2)).to_i.to_s&lt;br /&gt;
    'rgb(' + calculation + ',' + calculation + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; !participants.empty?&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      participants.each do |participant|&lt;br /&gt;
        next unless topic.id == participant.topic_id&lt;br /&gt;
        chooser_present = true&lt;br /&gt;
        if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += 'participant.user_name_placeholder'&lt;br /&gt;
        if participant.is_waitlisted&lt;br /&gt;
          name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
      end&lt;br /&gt;
      name_html += 'No choosers.' unless chooser_present&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107181</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107181"/>
		<updated>2017-03-23T01:43:45Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107166</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107166"/>
		<updated>2017-03-23T01:03:53Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Test for Helper Classes: spec/helpers/sign_up_sheet_helper_spec.rb ====&lt;br /&gt;
Implemented positive and negative test cases for all the methods in sign_up_sheet_helper.rb&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
====Helper File Changes====&lt;br /&gt;
There is no change in the expected behaviour. &lt;br /&gt;
* '''get_suggested_topics''': Retrieve list of topics suggested by signed in user for an assignment.&lt;br /&gt;
* '''get_intelligent_topic_row''': Render Intelligent Row in bidding based topic selection.&lt;br /&gt;
* '''get_topic_bg_color''': Render background color for row based on signed in user and status of the topic.&lt;br /&gt;
* '''render_participant_info''': Render Participant Info based on topic, assignment and participants.&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107071</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107071"/>
		<updated>2017-03-22T19:07:54Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Running the Project Locally */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
Those who contributed to the project could run the project locally by going to a terminal window, navigating to the project folder and running the single command:&lt;br /&gt;
&lt;br /&gt;
  rails server&lt;br /&gt;
&lt;br /&gt;
If the project was to be run again after changes to project code have been made, the commands to run from the terminal window would be as follows:&lt;br /&gt;
&lt;br /&gt;
  bundle install&lt;br /&gt;
  rails s&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107070</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107070"/>
		<updated>2017-03-22T19:05:59Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Running the Project Locally */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
Those who contributed to the project could run the project locally by going to a terminal window, navigating to the project folder and running the single command:&lt;br /&gt;
&lt;br /&gt;
  rails server&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107068</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107068"/>
		<updated>2017-03-22T18:57:58Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107067</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107067"/>
		<updated>2017-03-22T18:55:39Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107065</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107065"/>
		<updated>2017-03-22T18:54:26Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107064</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107064"/>
		<updated>2017-03-22T18:51:49Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
  def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107063</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107063"/>
		<updated>2017-03-22T18:51:00Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: render_participant_info() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
  def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
  def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
  def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
  def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
  def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107062</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107062"/>
		<updated>2017-03-22T18:50:17Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
  def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
  def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
  def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
  def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
  def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
  def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107061</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107061"/>
		<updated>2017-03-22T18:48:44Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: check_topic_due_date_value() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
  def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
  def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107060</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107060"/>
		<updated>2017-03-22T18:48:24Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
     def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
         due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
         DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
  def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107059</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107059"/>
		<updated>2017-03-22T18:47:23Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: check_topic_due_date_value() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
     def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
         due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
         DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107058</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107058"/>
		<updated>2017-03-22T18:46:52Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Method: check_topic_due_date_value() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
     def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
    DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107057</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107057"/>
		<updated>2017-03-22T18:46:01Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107056</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107056"/>
		<updated>2017-03-22T18:45:36Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Refactor the update_due_dates from AssignmentForm using the DRY principle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Function: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107054</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107054"/>
		<updated>2017-03-22T18:44:26Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* New Function: get_intelligent_topic_row() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Function: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_topic_bg_color() ====&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107053</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107053"/>
		<updated>2017-03-22T18:43:49Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Change to new redirect method rather using controller and action explicitly. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Function: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_intelligent_topic_row() ====&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107052</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107052"/>
		<updated>2017-03-22T18:42:48Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* remove_assignment_from_course  moved to model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Function: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_suggested_topics() ====&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107051</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107051"/>
		<updated>2017-03-22T18:42:11Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Refactoring Update function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Function: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
==== New Function: get_topic_deadline() ====&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107050</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107050"/>
		<updated>2017-03-22T18:41:34Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* check_topic_due_date_value() function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== New Function: check_topic_due_date_value() ====&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107049</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107049"/>
		<updated>2017-03-22T18:41:11Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Refactoring Edit function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== check_topic_due_date_value() function ====&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107048</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107048"/>
		<updated>2017-03-22T18:38:09Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107047</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107047"/>
		<updated>2017-03-22T18:36:21Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107046</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107046"/>
		<updated>2017-03-22T18:35:33Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107045</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107045"/>
		<updated>2017-03-22T18:34:31Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Classes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
'''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107044</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107044"/>
		<updated>2017-03-22T18:31:46Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
'''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder).&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107043</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107043"/>
		<updated>2017-03-22T18:31:28Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
'''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript cocde to assets (folder).&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107042</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107042"/>
		<updated>2017-03-22T18:30:54Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
Documents: _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript cocde to assets (folder).&lt;br /&gt;
&lt;br /&gt;
Documents: _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
Documents: _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107041</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107041"/>
		<updated>2017-03-22T18:23:26Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107039</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107039"/>
		<updated>2017-03-22T17:54:29Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107038</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107038"/>
		<updated>2017-03-22T17:41:53Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107035</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107035"/>
		<updated>2017-03-22T17:21:31Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
===Background===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Refactoring Edit function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Update function ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== remove_assignment_from_course  moved to model ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Change to new redirect method rather using controller and action explicitly. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactor the update_due_dates from AssignmentForm using the DRY principle ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
* &lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107034</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107034"/>
		<updated>2017-03-22T17:17:35Z</updated>

		<summary type="html">&lt;p&gt;Jbcrick: Created page with &amp;quot;[To be edited further]  Ok guys, here's our page!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[To be edited further]&lt;br /&gt;
&lt;br /&gt;
Ok guys, here's our page!&lt;/div&gt;</summary>
		<author><name>Jbcrick</name></author>
	</entry>
</feed>