<?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=Tyeh3</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=Tyeh3"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Tyeh3"/>
	<updated>2026-08-10T00:04:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=137454</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=137454"/>
		<updated>2020-11-17T23:28:51Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience, and also in evaluating the quality/sincerity of the reviews.&lt;br /&gt;
&lt;br /&gt;
'''Previous work done in Fall 2019 enables tracking time between successive time tag assignment.''' &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Tagging1993.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation.&lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
* Display the tagging interval information as a number alongside the graph in order to make it more intuitive to read&lt;br /&gt;
* Add test cases regarding new changes&lt;br /&gt;
&lt;br /&gt;
'''Example Mockup of Added Column'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:ECE517Project4 Mockup.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other possible changes to be made ===&lt;br /&gt;
* Refactor code from the previous implementation&lt;br /&gt;
* Display intervals using a different type of graph (bar graph, line graph, etc)&lt;br /&gt;
'''For loops that could be implemented into a separate method'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:ECE517Project4 ForLoops.png]]&lt;br /&gt;
&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
* helpers/report_formatter_helper.rb&lt;br /&gt;
* helpers/review_mapping_helper.rb &lt;br /&gt;
* models/tag_prompt_deployment.rb&lt;br /&gt;
* models/vm_user_answer_tagging.rb&lt;br /&gt;
* views/reports/_answer_tagging_report.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
We propose a method that aims to perform:&lt;br /&gt;
&lt;br /&gt;
1. Query the database for details on reviews and their tags&lt;br /&gt;
&lt;br /&gt;
2. Update the existing chart logic to process these numbers&lt;br /&gt;
&lt;br /&gt;
3. Update the report format to include these times&lt;br /&gt;
&lt;br /&gt;
4. Add tests for internal logic and manual UI-testing too&lt;br /&gt;
&lt;br /&gt;
HOW: We'll create an independent method for our logic and append it to the existing logic without necessarily modifying it&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
To manually reproduce the scenario on the UI and test the results on our new/modified time reports&lt;br /&gt;
&lt;br /&gt;
1. Manually impersonate the process of tagging reviews for a dummy assignment&lt;br /&gt;
&lt;br /&gt;
2. Test that the tag times are recorded and displayed properly&lt;br /&gt;
&lt;br /&gt;
3. Compare it with previous logic to check that values/logic is consistent&lt;br /&gt;
&lt;br /&gt;
4. Regression test just to see that the existing charts aren't broken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing ===&lt;br /&gt;
1. Logged in as Instructor 6 with username = &amp;lt;b&amp;gt;instructor6&amp;lt;/b&amp;gt; and password = &amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Click &amp;quot;Manage...&amp;quot; -&amp;gt; &amp;quot;Assignments&amp;quot; from the top-left menu item&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
3. Create a new assignment by clicking the &amp;lt;b&amp;gt;+&amp;lt;/b&amp;gt; button&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4. Filling the necessary information in &amp;lt;b&amp;gt;&amp;quot;General&amp;quot;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;quot;Rubrics&amp;quot;&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;&amp;quot;Due Dates&amp;quot;&amp;lt;/b&amp;gt; sections indicated in the following screenshots. Then click &amp;lt;b&amp;gt;Create&amp;lt;/b&amp;gt; button.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5. Edit &amp;lt;b&amp;gt;Tagging Assignment&amp;lt;/b&amp;gt; and click &amp;lt;b&amp;gt;add new..&amp;lt;/b&amp;gt; under &amp;lt;b&amp;gt;Tag prompt&amp;lt;/b&amp;gt; dropdown list&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6. Click the green &amp;lt;b&amp;gt;+&amp;lt;/b&amp;gt; on the top-right of the popup window. Enter the value for &amp;lt;b&amp;gt;prompt&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;desc&amp;lt;/b&amp;gt; as shown in the screenshot below. Click green &amp;lt;b&amp;gt;+&amp;lt;/b&amp;gt; button at the right most column.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT7.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7. Select &amp;lt;b&amp;gt;Criterion&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;apply to question type&amp;lt;/b&amp;gt;. Click &amp;lt;b&amp;gt;Save&amp;lt;/b&amp;gt; button.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT8.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8. Click the &amp;lt;b&amp;gt;Add Participants&amp;lt;/b&amp;gt; button, then add &amp;lt;b&amp;gt;student7339&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;student7430&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT9.png|600px]]&lt;br /&gt;
&lt;br /&gt;
9. Logged in as student7339 with password=&amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt; and make a submission from &amp;lt;b&amp;gt;Your work&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT10.png|600px]]&lt;br /&gt;
&lt;br /&gt;
10. Logged in as instructor6 and modify &amp;lt;b&amp;gt;Tagging Assignment&amp;lt;/b&amp;gt; due date for &amp;lt;b&amp;gt;Round 1: Submission&amp;lt;/b&amp;gt; to be two days before today.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
11. Logged in as student7430 with password=&amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt; and submit review from &amp;lt;b&amp;gt;Others' work&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT12_5.png|600px]]&lt;br /&gt;
[[File:E2082_MT12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
12. Logged in as instructor6 and modify &amp;lt;b&amp;gt;Tagging Assignment&amp;lt;/b&amp;gt; due date for &amp;lt;b&amp;gt;Round 1: Review&amp;lt;/b&amp;gt; to be one day before today.&lt;br /&gt;
[[File:E2082_MT13.png|400px]]&lt;br /&gt;
&lt;br /&gt;
13. Logged in as student7339 and tag the review from &amp;lt;Your scores&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT14.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT15.png|600px]]&lt;br /&gt;
&lt;br /&gt;
14. Logged in as instructor6. Go to &amp;lt;b&amp;gt;manage...-&amp;gt;Assignment&amp;lt;/b&amp;gt; and click &amp;lt;b&amp;gt;View Reports&amp;lt;/b&amp;gt; button.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT16.png|600px]]&lt;br /&gt;
&lt;br /&gt;
15. Select &amp;lt;b&amp;gt;Answer Tagging Report&amp;lt;/b&amp;gt; and click &amp;lt;b&amp;gt;View&amp;lt;/b&amp;gt; button. &lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT17.png|600px]]&lt;br /&gt;
&lt;br /&gt;
16. The highlighted column in blue rectangle is the new feature we added&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
Tests were added to test the accuracy of calculating the statistics of the timings we have tracked in this project.&lt;br /&gt;
The comprehensive test can test all the math logic involved in our design.&lt;br /&gt;
&lt;br /&gt;
[[File:Test_cases2.png]]&lt;br /&gt;
&lt;br /&gt;
== Other Information ==&lt;br /&gt;
=== Pull Request ===&lt;br /&gt;
https://github.com/expertiza/expertiza/pull/1848&lt;br /&gt;
&lt;br /&gt;
=== Video URL ===&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=137144</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=137144"/>
		<updated>2020-11-17T01:45:36Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience, and also in evaluating the quality/sincerity of the reviews.&lt;br /&gt;
&lt;br /&gt;
'''Previous work done in Fall 2019 enables tracking time between successive time tag assignment.''' &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Tagging1993.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation.&lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
* Display the tagging interval information as a number alongside the graph in order to make it more intuitive to read&lt;br /&gt;
* Add test cases regarding new changes&lt;br /&gt;
&lt;br /&gt;
'''Example Mockup of Added Column'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:ECE517Project4 Mockup.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other possible changes to be made ===&lt;br /&gt;
* Refactor code from the previous implementation&lt;br /&gt;
* Display intervals using a different type of graph (bar graph, line graph, etc)&lt;br /&gt;
'''For loops that could be implemented into a separate method'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:ECE517Project4 ForLoops.png]]&lt;br /&gt;
&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
* helpers/report_formatter_helper.rb&lt;br /&gt;
* helpers/review_mapping_helper.rb &lt;br /&gt;
* models/tag_prompt_deployment.rb&lt;br /&gt;
* models/vm_user_answer_tagging.rb&lt;br /&gt;
* views/reports/_answer_tagging_report.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
'''[PLAN]''': We propose a method that aims to perform:&lt;br /&gt;
&lt;br /&gt;
1. Query the database for details on reviews and their tags&lt;br /&gt;
&lt;br /&gt;
2. Update the existing chart logic to process these numbers&lt;br /&gt;
&lt;br /&gt;
3. Update the report format to include these times&lt;br /&gt;
&lt;br /&gt;
4. Add tests for internal logic and manual UI-testing too&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''[PLAN]''': We propose to create an independent method for our logic and append it to the existing logic without necessarily modifying it (unless the goal is to refactor old code)&lt;br /&gt;
&lt;br /&gt;
'''NOTE: CODE REVIEW WILL BE PASTED HERE AS WE REACH THE FINAL CODE SUBMISSION DEADLINE'''&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
'''[PLAN]''': To manually reproduce the scenario on the UI and test the results on our new/modified time reports&lt;br /&gt;
&lt;br /&gt;
1. Manually impersonate the process of tagging reviews for a dummy assignment&lt;br /&gt;
&lt;br /&gt;
2. Test that the tag times are recorded and displayed properly&lt;br /&gt;
&lt;br /&gt;
3. Compare it with previous logic to check that values/logic is consistent&lt;br /&gt;
&lt;br /&gt;
4. Regression test just to see that the existing charts aren't broken&lt;br /&gt;
&lt;br /&gt;
'''NOTE: TESTING CODE WILL BE PASTED HERE AS WE REACH THE FINAL CODE SUBMISSION DEADLINE'''&lt;br /&gt;
&lt;br /&gt;
=== Manual Testing ===&lt;br /&gt;
1. Logged in as Instructor 6 with username = &amp;lt;b&amp;gt;instructor6&amp;lt;/b&amp;gt; and password = &amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Click &amp;quot;Manage...&amp;quot; -&amp;gt; &amp;quot;Assignments&amp;quot; from the top-left menu item&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
3. Create a new assignment by clicking the &amp;lt;b&amp;gt;+&amp;lt;/b&amp;gt; button&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4. Filling the necessary information in &amp;lt;b&amp;gt;&amp;quot;General&amp;quot;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;quot;Rubrics&amp;quot;&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;&amp;quot;Due Dates&amp;quot;&amp;lt;/b&amp;gt; sections indicated in the following screenshots. Then click &amp;lt;b&amp;gt;Create&amp;lt;/b&amp;gt; button.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5. Edit &amp;lt;b&amp;gt;Tagging Assignment&amp;lt;/b&amp;gt; and click &amp;lt;b&amp;gt;add new..&amp;lt;/b&amp;gt; under &amp;lt;b&amp;gt;Tag prompt&amp;lt;/b&amp;gt; dropdown list&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6. Click the green &amp;lt;b&amp;gt;+&amp;lt;/b&amp;gt; on the top-right of the popup window. Enter the value for &amp;lt;b&amp;gt;prompt&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;desc&amp;lt;/b&amp;gt; as shown in the screenshot below. Click green &amp;lt;b&amp;gt;+&amp;lt;/b&amp;gt; button at the right most column.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT7.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7. Select &amp;lt;b&amp;gt;Criterion&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;apply to question type&amp;lt;/b&amp;gt;. Click &amp;lt;b&amp;gt;Save&amp;lt;/b&amp;gt; button.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT8.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8. Click the &amp;lt;b&amp;gt;Add Participants&amp;lt;/b&amp;gt; button, then add &amp;lt;b&amp;gt;student7339&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;student7430&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT9.png|600px]]&lt;br /&gt;
&lt;br /&gt;
9. Logged in as student7339 with password=&amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt; and make a submission from &amp;lt;b&amp;gt;Your work&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT10.png|600px]]&lt;br /&gt;
&lt;br /&gt;
10. Logged in as instructor6 and modify &amp;lt;b&amp;gt;Tagging Assignment&amp;lt;/b&amp;gt; due date for &amp;lt;b&amp;gt;Round 1: Submission&amp;lt;/b&amp;gt; to be two days before today.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
11. Logged in as student7430 with password=&amp;lt;b&amp;gt;password&amp;lt;/b&amp;gt; and submit review from &amp;lt;b&amp;gt;Others' work&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT12_5.png|600px]]&lt;br /&gt;
[[File:E2082_MT12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
12. Logged in as instructor6 and modify &amp;lt;b&amp;gt;Tagging Assignment&amp;lt;/b&amp;gt; due date for &amp;lt;b&amp;gt;Round 1: Review&amp;lt;/b&amp;gt; to be one day before today.&lt;br /&gt;
[[File:E2082_MT13.png|400px]]&lt;br /&gt;
&lt;br /&gt;
13. Logged in as student7339 and tag the review from &amp;lt;Your scores&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT14.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT15.png|600px]]&lt;br /&gt;
&lt;br /&gt;
14. Logged in as instructor6. Go to &amp;lt;b&amp;gt;manage...-&amp;gt;Assignment&amp;lt;/b&amp;gt; and click &amp;lt;b&amp;gt;View Reports&amp;lt;/b&amp;gt; button.&lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT16.png|600px]]&lt;br /&gt;
&lt;br /&gt;
15. Select &amp;lt;b&amp;gt;Answer Tagging Report&amp;lt;/b&amp;gt; and click &amp;lt;b&amp;gt;View&amp;lt;/b&amp;gt; button. &lt;br /&gt;
&lt;br /&gt;
[[File:E2082_MT17.png|600px]]&lt;br /&gt;
&lt;br /&gt;
16. The highlighted column in blue rectangle is the new feature we added&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT17.png&amp;diff=137141</id>
		<title>File:E2082 MT17.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT17.png&amp;diff=137141"/>
		<updated>2020-11-17T01:44:48Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT16.png&amp;diff=137139</id>
		<title>File:E2082 MT16.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT16.png&amp;diff=137139"/>
		<updated>2020-11-17T01:44:41Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2082 MT16.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT16.png&amp;diff=137136</id>
		<title>File:E2082 MT16.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT16.png&amp;diff=137136"/>
		<updated>2020-11-17T01:41:29Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT15.png&amp;diff=137130</id>
		<title>File:E2082 MT15.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT15.png&amp;diff=137130"/>
		<updated>2020-11-17T01:38:40Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT12_5.png&amp;diff=137128</id>
		<title>File:E2082 MT12 5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT12_5.png&amp;diff=137128"/>
		<updated>2020-11-17T01:37:07Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT14.png&amp;diff=137126</id>
		<title>File:E2082 MT14.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT14.png&amp;diff=137126"/>
		<updated>2020-11-17T01:34:37Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT13.png&amp;diff=137125</id>
		<title>File:E2082 MT13.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT13.png&amp;diff=137125"/>
		<updated>2020-11-17T01:31:05Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT11.png&amp;diff=137124</id>
		<title>File:E2082 MT11.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT11.png&amp;diff=137124"/>
		<updated>2020-11-17T01:30:53Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2082 MT11.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT12.png&amp;diff=137122</id>
		<title>File:E2082 MT12.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT12.png&amp;diff=137122"/>
		<updated>2020-11-17T01:27:46Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT11.png&amp;diff=137119</id>
		<title>File:E2082 MT11.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT11.png&amp;diff=137119"/>
		<updated>2020-11-17T01:25:32Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2082 MT11.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT11.png&amp;diff=137117</id>
		<title>File:E2082 MT11.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT11.png&amp;diff=137117"/>
		<updated>2020-11-17T01:24:40Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT10.png&amp;diff=137113</id>
		<title>File:E2082 MT10.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT10.png&amp;diff=137113"/>
		<updated>2020-11-17T01:21:32Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT9.png&amp;diff=137110</id>
		<title>File:E2082 MT9.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT9.png&amp;diff=137110"/>
		<updated>2020-11-17T01:12:38Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT8.png&amp;diff=137109</id>
		<title>File:E2082 MT8.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT8.png&amp;diff=137109"/>
		<updated>2020-11-17T01:09:51Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2082 MT8.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT8.png&amp;diff=137102</id>
		<title>File:E2082 MT8.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT8.png&amp;diff=137102"/>
		<updated>2020-11-17T00:59:30Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT7.png&amp;diff=137101</id>
		<title>File:E2082 MT7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT7.png&amp;diff=137101"/>
		<updated>2020-11-17T00:55:57Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2082 MT7.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT7.png&amp;diff=137100</id>
		<title>File:E2082 MT7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT7.png&amp;diff=137100"/>
		<updated>2020-11-17T00:54:54Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2082 MT7.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT7.png&amp;diff=137098</id>
		<title>File:E2082 MT7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT7.png&amp;diff=137098"/>
		<updated>2020-11-17T00:54:23Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT6.png&amp;diff=137097</id>
		<title>File:E2082 MT6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT6.png&amp;diff=137097"/>
		<updated>2020-11-17T00:50:26Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT5.png&amp;diff=137096</id>
		<title>File:E2082 MT5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT5.png&amp;diff=137096"/>
		<updated>2020-11-17T00:44:49Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2082 MT5.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT5.png&amp;diff=137095</id>
		<title>File:E2082 MT5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT5.png&amp;diff=137095"/>
		<updated>2020-11-17T00:38:45Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT4.png&amp;diff=137094</id>
		<title>File:E2082 MT4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT4.png&amp;diff=137094"/>
		<updated>2020-11-17T00:38:32Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT3.png&amp;diff=137093</id>
		<title>File:E2082 MT3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT3.png&amp;diff=137093"/>
		<updated>2020-11-17T00:38:21Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT2.png&amp;diff=137092</id>
		<title>File:E2082 MT2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT2.png&amp;diff=137092"/>
		<updated>2020-11-17T00:32:25Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT1.png&amp;diff=137091</id>
		<title>File:E2082 MT1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2082_MT1.png&amp;diff=137091"/>
		<updated>2020-11-17T00:27:52Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135945</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135945"/>
		<updated>2020-10-21T23:07:24Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Objective */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience.&lt;br /&gt;
&lt;br /&gt;
Previous work done in Fall 2019 enables tracking time between successive time tag assignment. &lt;br /&gt;
[[File:Tagging1993.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation.&lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
* Display the tagging interval information as a Numbers will be more intuitive.&lt;br /&gt;
* Add test cases regarding new changes&lt;br /&gt;
&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
* helpers/report_formatter_helper.rb&lt;br /&gt;
* helpers/review_mapping_helper.rb &lt;br /&gt;
* models/tag_prompt_deployment.rb&lt;br /&gt;
* models/vm_user_answer_tagging.rb&lt;br /&gt;
* views/reports/_answer_tagging_report.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135944</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135944"/>
		<updated>2020-10-21T23:06:33Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* File Involved */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience.&lt;br /&gt;
&lt;br /&gt;
Previous work done in Fall 2019 enables tracking time between successive time tag assignment. &lt;br /&gt;
[[File:Tagging1993.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation.&lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
* helpers/report_formatter_helper.rb&lt;br /&gt;
* helpers/review_mapping_helper.rb &lt;br /&gt;
* models/tag_prompt_deployment.rb&lt;br /&gt;
* models/vm_user_answer_tagging.rb&lt;br /&gt;
* views/reports/_answer_tagging_report.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135943</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135943"/>
		<updated>2020-10-21T22:48:58Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience.&lt;br /&gt;
&lt;br /&gt;
Previous work done in Fall 2019 enables tracking time between successive time tag assignment. &lt;br /&gt;
[[File:Tagging1993.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation.&lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135934</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135934"/>
		<updated>2020-10-21T21:35:27Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Previous Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience.&lt;br /&gt;
&lt;br /&gt;
Previous work done in Fall 2019 enables tracking time between successive time tag assignment. However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation.&lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135933</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135933"/>
		<updated>2020-10-21T21:35:18Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience.&lt;br /&gt;
&lt;br /&gt;
Previous work done in Fall 2019 enables tracking time between successive time tag assignment. However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation.&lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135931</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135931"/>
		<updated>2020-10-21T21:32:38Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Previous Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience.&lt;br /&gt;
&lt;br /&gt;
Previous work done in Fall 2019 enables tracking time between successive time tag assignment. However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation &lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
The following links are the deliverables from the original implementation in Fall 2019&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1993_Track_Time_Between_Successive_Tag_Assignments CSC/ECE 517 Fall 2019 - E1993 Track Time Between Successive Tag Assignments]&lt;br /&gt;
* [https://www.youtube.com/watch?v=YxR9sitpZcs&amp;amp;feature=youtu.be&amp;amp;ab_channel=HackOverFlow Youtube Explanation]&lt;br /&gt;
* [https://github.com/Galactis/expertiza Git Repository]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1642 Git Pull Request]&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135930</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135930"/>
		<updated>2020-10-21T21:25:11Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project takes advantage of peer review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resource is meaningful for instructors to study and improve the teaching experience.&lt;br /&gt;
&lt;br /&gt;
Previous work done in Fall 2019 enables tracking time between successive time tag assignment. However, there are several problems with their solution:&lt;br /&gt;
* There is no automated tests using mocked data to test their implementation &lt;br /&gt;
* The previous team added a tagging interval chart to each row (representing each participant) in the Answer Tagging report. However, the chart will be hard to read if there hundreds of tagging interval&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135927</id>
		<title>CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2082._Track_time_between_successive_tag_assignments&amp;diff=135927"/>
		<updated>2020-10-21T21:11:02Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Created page with &amp;quot;== Project Overview == === Background === === Objective === === File Involved === === Previous Work === === Team === Joshua Aaron Horwitz (jahorwit) &amp;lt;br&amp;gt; Varun Varadarajan (vv...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
=== Objective ===&lt;br /&gt;
=== File Involved ===&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
=== Team ===&lt;br /&gt;
Joshua Aaron Horwitz (jahorwit)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Varun Varadarajan (vvarada2)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nicholas Viado (ndviado)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tsu-Hsin Yeh (tyeh3)&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Mentor:''' Kai Xiao (yxiao28)&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020&amp;diff=135925</id>
		<title>CSC/ECE 517 Fall 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020&amp;diff=135925"/>
		<updated>2020-10-21T20:49:02Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Final Project Design Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Writing Assignments ==&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2070. Refactor response_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2068. Refactor quiz_questionnaires_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2062. Add test cases to review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2063. Refactor tree-display.js and tree_display_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2064. Refactor reputation_web_service_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2065. Fix view in student_task/list page]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2066. Refactor lottery controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2067. Refactor student_teams_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2073. Refactor course_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2057. Restrict TAs’ ability to change their own grade and limit file-size upload]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2052. Remove multiple topics at a time]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2052. Remove multiple topics at a time]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2056 Account_Request_Controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2059. Email notification to reviewers and instructors.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2058. Two issues related to assignment management]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2071. Improve assessment360_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2054. Auto generate submission directory names based on assignment names]]&lt;br /&gt;
&lt;br /&gt;
== Final Project Design Documents == &lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2078. Improve self-review  Link peer review &amp;amp; self-review to derive grades]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2083. Revision_planning_tool_E2016]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2085. Allow reviewers to bid on what to review]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2086. Let course staff as well as students do reviews]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - SQLFE. Refactor Submission.java]]&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134745</id>
		<title>CSC/ECE 517 Fall 2020 - E2067. Refactor student teams controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134745"/>
		<updated>2020-10-12T21:03:02Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Future Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
===Background===&lt;br /&gt;
The '''student_teams_controller.rb''' controller used in Expertiza to manipulate teams that are created for assignments. Primary functions that this controller provides is create a new team, update team name and delete members from a team.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation of our work is to improve the maintainability and readability of '''student_teams_controller.rb''' Controller. Furthermore, we also fix several occasions where the '''student_teams_controller.rb''' contains code snippets that actually belongs to the model classes. This will help enforce single responsibility principle and model-view-controller pattern.&lt;br /&gt;
&lt;br /&gt;
===Task Identified===&lt;br /&gt;
* Move '''return unless current_user_id? student.user_id''' into '''action_allowed method'''&lt;br /&gt;
* Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class'''&lt;br /&gt;
* Remove variable '''current_team'''&lt;br /&gt;
* Add comment for '''@users_on_waiting_list''' and also simplify the condition&lt;br /&gt;
* Refactor '''@teammate_review_allowed''' into '''due_date.rb'''&lt;br /&gt;
* Rename '''existing_assignments?''' to '''existing_teams'''&lt;br /&gt;
* Add method comment for the '''update method'''&lt;br /&gt;
* Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?'''&lt;br /&gt;
* Add method comment for '''Advertise_for_partners''' and '''remove_advertisement'''&lt;br /&gt;
* Rename '''sign_up''' into '''signup'''&lt;br /&gt;
* Refactor code from '''remove_participant''' into '''waitlist.rb'''&lt;br /&gt;
* Add method comment for the '''review method'''&lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*/controllers/student_teams_controller.rb&lt;br /&gt;
*/models/waitlist.rb&lt;br /&gt;
*/models/due_date.rb&lt;br /&gt;
&lt;br /&gt;
==Code Review==&lt;br /&gt;
The purpose of this section is to provide the before and after change comparison so the developer can perform code review to ensure the correctness of the change. &lt;br /&gt;
&lt;br /&gt;
=== Move '''return unless current_user_id? student.user_id''' into '''action_allowed method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The action_allowed method determines whether an action is permissible, depending on the privileges of the user who is performing it.  In the view method, there is a clause that says, return unless current_user_id? student.user_id.  This needs to be moved to the when 'view' clause  in the action_allowed method.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
''Student_teams_controller.rb'':&amp;lt;br&amp;gt;&lt;br /&gt;
'''action_allowed method'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Issue1 fix.png|1000px]]&amp;lt;br&amp;gt;&lt;br /&gt;
'''view method'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Issue1 fix2.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
Deleted 'return unless current_user_id? student.user_id' in the view method, and added it to a if clause under the when 'view' clause in the action_allowed method. So that every time before view method is called, this sentence in the action_allowed method will run first.&lt;br /&gt;
&lt;br /&gt;
=== Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code beginning at line 44 deals with due_dates, which are part of the “business logic” and should be moved to an appropriate model method.  Thus, @student.assignment.due_dates.each do |due_date| should invoke an appropriate method in due_date.rb.  It may or may not be necessary to add a method to the DueDates class.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
''Student_teams_controller.rb'':&lt;br /&gt;
[[File:current_due_date_comparison.PNG]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
''due_date.rb'':&amp;lt;br&amp;gt;        &lt;br /&gt;
[[File:due_date_method_added.PNG]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
The code in the first image uses logic associated with due dates to assign a variable called '@current_due_date'. This logic was moved to a new method in the model due_dates.rb, shown in the second image. This logic was moved to to simplify the controller but also because the logic is specific to due dates and is more reasonable to be located in the due dates model.&lt;br /&gt;
&lt;br /&gt;
=== Remove variable '''current_team''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The variable current_team seems unnecessary; it only saves one character vs. @student.team. Consider removing it.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
[[File:current_team_change_comparison.PNG]]&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
In the red line 51 above, the variable 'current_team' is used. This variable is unnecessary as it is not significantly shorter or more descriptive. As shown in the changes between red line 53 and green line 49, the 'current_team' variable was removed and replaced with '@student.team'.&lt;br /&gt;
&lt;br /&gt;
=== Add comment for '''@users_on_waiting_list''' and also simplify the condition ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code on Line 53 (@users_on_waiting_list ...) is not clear at all.  Needs at least a comment, and also the condition should not be so complicated.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
[[File:updated_comment_waiting_list.PNG]]&lt;br /&gt;
[[File:added_requirements_method.PNG]]&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
The '@users_on_waiting_list' line of code needed a comment to clarify its function. The original line had a complex conditional that made the code hard to read. This conditional was moved to a new method in which it was refactored and commented to be more understandable and readable.&lt;br /&gt;
&lt;br /&gt;
=== Refactor '''@teammate_review_allowed''' into '''due_date.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
In line 55, the @teammate_review_allowed: condition is way too complex, uses magic constants, and belongs in code in another model class (maybe due_date.rb); no way should it be in the controller!&lt;br /&gt;
* Change Comparison&lt;br /&gt;
[[File:Issue5 fix.png|1000px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
''Student_teams_controller.rb'':&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Issue5 fix2.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
Moved '''@teammate_review_allowed''' 's condition to '''due_date.rb''' so the code is more readable.&lt;br /&gt;
&lt;br /&gt;
=== Rename '''existing_assignments?''' to '''existing_teams''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 59: existing_assignments is evidently a team!  So why is the variable name existing_assignments? It should perhaps be changed to existing_teams.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
[[File:existing_assignments_comparison.PNG]]&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
The variable 'existing_assignments' was actually a team. To better reflect the purpose of the variable and function of the code, the name was changed from 'existing_assignments' to 'existing_teams'.&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for the '''update method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The update method needs comments about what it is doing.&lt;br /&gt;
* Change Comparison (commit 7a9e39)&lt;br /&gt;
[[File:E2067_Issue7_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
The '''if''' condition checks if the new team name is NOT already exist, if so then update the team name. The '''elsif''' condition checks if the new team name is the same the current one, if so then nothing is changed. The '''else''' covers the case where the new team name is already in use, then print an error message and not changing the team name.&lt;br /&gt;
=== Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 95: Why isn’t (matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero? just (matching_teams[0].name == team.name)?&lt;br /&gt;
* Change Comparison (commit d60d92)&lt;br /&gt;
[[File:E2067_Issue8_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
This change is straight forward to satisfy the objective of the task.&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for '''Advertise_for_partners''' and '''remove_advertisement''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 108:  advertise_for_partners needs a method comment. Since its body is only 1 line, does it make sense to have a separate method for this?   It makes sense only if having a separate method improves readability.  Ditto for the remove_advertisement method at line 112.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
[[File:Issue9 fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
Both '''advertise_for_partners''' and '''remove_advertisement''' are necessary in terms of readability.&lt;br /&gt;
&lt;br /&gt;
=== Rename '''sign_up''' into '''signup''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The name sign_up needs to be signup; it is being used as a noun (sign_up would suggest a verb, the action of signing up).&lt;br /&gt;
* Change Comparison (commit e393ba)&lt;br /&gt;
[[File:E2067_Issue10_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
I performed a file search on '''sign_up''' and it only appears in the places shown in the screenshot. I replaced them with signup according to the objective.&lt;br /&gt;
=== Refactor code from '''remove_participant''' into '''waitlist.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
remove_participant is generally good code, but handling of waitlists is again model activity, and should be moved to a model class, perhaps waitlist.rb.&lt;br /&gt;
* Change Comparison (commit 504f84)&lt;br /&gt;
[[File:E2067_Issue11_Fix1.png|1000px]]&lt;br /&gt;
[[File:E2067_Issue11_Fix2.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
Line 127~142 in '''student_teams_controller.rb''' are moved to Line 14~29 in '''waitlist.rb'''. The only input to the new function '''remove_from_waitlists''' in '''waitlist.rb''' requires '''params[:team_id]''' from '''student_teams_controller.rb'''.&lt;br /&gt;
=== Add method comment for the '''review method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 169: The review method needs a method comment; its purpose is not clear.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
[[File:Issue12 fix.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
Clarified what review method intends to do.&lt;br /&gt;
&lt;br /&gt;
==Test==&lt;br /&gt;
File: spec/controllers/student_teams_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
describe StudentTeamsController do&lt;br /&gt;
  let (:student_teams_controller) { StudentTeamsController.new }&lt;br /&gt;
  let(:student) { double &amp;quot;student&amp;quot; }&lt;br /&gt;
  describe '#view' do&lt;br /&gt;
    it 'sets the student' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('12345').and_return student&lt;br /&gt;
      allow(student_teams_controller).to receive(:current_user_id?)&lt;br /&gt;
      allow(student_teams_controller).to receive(:params).and_return(student_id: '12345')&lt;br /&gt;
      allow(student).to receive(:user_id)&lt;br /&gt;
      student_teams_controller.view&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;br /&gt;
* In the update method of student_teams_controller.rb, the 'elsif' needs a comment to explain its purpose. It is unclear as to why this conditional is present.&lt;br /&gt;
* For student_teams_controller update method, simplify the condition logic by combining elsif and else into a single statement&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134568</id>
		<title>CSC/ECE 517 Fall 2020 - E2067. Refactor student teams controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134568"/>
		<updated>2020-10-11T18:18:11Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
===Background===&lt;br /&gt;
The '''student_teams_controller.rb''' controller used in Expertiza to manipulate teams that are created for assignments. Primary functions that this controller provides is create a new team, update team name and delete members from a team.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation of our work is to improve the maintainability and readability of '''student_teams_controller.rb''' Controller. Furthermore, we also fix several occasions where the '''student_teams_controller.rb''' contains code snippets that actually belongs to the model classes. This will help enforce single responsibility principle and model-view-controller pattern.&lt;br /&gt;
&lt;br /&gt;
===Task Identified===&lt;br /&gt;
* Move '''return unless current_user_id? student.user_id''' into '''action_allowed method'''&lt;br /&gt;
* Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class'''&lt;br /&gt;
* Remove variable '''current_team'''&lt;br /&gt;
* Add comment for '''@users_on_waiting_list''' and also simplify the condition&lt;br /&gt;
* Refactor '''@teammate_review_allowed''' into '''due_date.rb'''&lt;br /&gt;
* Rename '''existing_assignments?''' to '''existing_teams'''&lt;br /&gt;
* Add method comment for the '''update method'''&lt;br /&gt;
* Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?'''&lt;br /&gt;
* Add method comment for '''Advertise_for_partners''' and '''remove_advertisement'''&lt;br /&gt;
* Rename '''sign_up''' into '''signup'''&lt;br /&gt;
* Refactor code from '''remove_participant''' into '''waitlist.rb'''&lt;br /&gt;
* Add method comment for the '''review method'''&lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*/controllers/student_teams_controller.rb&lt;br /&gt;
*/models/waitlist.rb&lt;br /&gt;
*/models/due_date.rb&lt;br /&gt;
&lt;br /&gt;
==Code Review==&lt;br /&gt;
The purpose of this section is to provide the before and after change comparison so the developer can perform code review to ensure the correctness of the change. &lt;br /&gt;
&lt;br /&gt;
=== Move '''return unless current_user_id? student.user_id''' into '''action_allowed method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The action_allowed method determines whether an action is permissible, depending on the privileges of the user who is performing it.  In the view method, there is a clause that says, return unless current_user_id? student.user_id.  This needs to be moved to the when 'view' clause  in the action_allowed method.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code beginning at line 44 deals with due_dates, which are part of the “business logic” and should be moved to an appropriate model method.  Thus, @student.assignment.due_dates.each do |due_date|should invoke an appropriate method in due_date.rb.  It may or may not be necessary to add a method to the DueDates class.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Remove variable '''current_team''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The variable current_team seems unnecessary; it only saves one character vs. @student.team. Consider removing it.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Add comment for '''@users_on_waiting_list''' and also simplify the condition ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code on Line 53 (@users_on_waiting_list ...) is not clear at all.  Needs at least a comment, and also the condition should not be so complicated.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Refactor '''@teammate_review_allowed''' into '''due_date.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
In line 55, the @teammate_review_allowed: condition is way too complex, uses magic constants, and belongs in code in another model class (maybe due_date.rb); no way should it be in the controller!&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Rename '''existing_assignments?''' to '''existing_teams''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 59: existing_assignments is evidently a team!  So why is the variable name existing_assignments? It should perhaps be changed to existing_teams.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for the '''update method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The update method needs comments about what it is doing.&lt;br /&gt;
* Change Comparison (commit 7a9e39)&lt;br /&gt;
[[File:E2067_Issue7_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
The '''if''' condition checks if the new team name is NOT already exist, if so then update the team name. The '''elsif''' condition checks if the new team name is the same the current one, if so then nothing is changed. The '''else''' covers the case where the new team name is already in use, then print an error message and not changing the team name.&lt;br /&gt;
=== Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 95: Why isn’t (matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero? just (matching_teams[0].name == team.name)?&lt;br /&gt;
* Change Comparison (commit d60d92)&lt;br /&gt;
[[File:E2067_Issue8_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
This change is straight forward to satisfy the objective of the task.&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for '''Advertise_for_partners''' and '''remove_advertisement''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 108:  advertise_for_partners needs a method comment. Since its body is only 1 line, does it make sense to have a separate method for this?   It makes sense only if having a separate method improves readability.  Ditto for the remove_advertisement method at line 112.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Rename '''sign_up''' into '''signup''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The name sign_up needs to be signup; it is being used as a noun (sign_up would suggest a verb, the action of signing up).&lt;br /&gt;
* Change Comparison (commit e393ba)&lt;br /&gt;
[[File:E2067_Issue10_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
I performed a file search on '''sign_up''' and it only appears in the places shown in the screenshot. I replaced them with signup according to the objective.&lt;br /&gt;
=== Refactor code from '''remove_participant''' into '''waitlist.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
remove_participant is generally good code, but handling of waitlists is again model activity, and should be moved to a model class, perhaps waitlist.rb.&lt;br /&gt;
* Change Comparison (commit 504f84)&lt;br /&gt;
[[File:E2067_Issue11_Fix1.png|1000px]]&lt;br /&gt;
[[File:E2067_Issue11_Fix2.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
Line 127~142 in '''student_teams_controller.rb''' are moved to Line 14~29 in '''waitlist.rb'''. The only input to the new function '''remove_from_waitlists''' in '''waitlist.rb''' requires '''params[:team_id]''' from '''student_teams_controller.rb'''.&lt;br /&gt;
=== Add method comment for the '''review method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 169: The review method needs a method comment; its purpose is not clear.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
==Test==&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134567</id>
		<title>CSC/ECE 517 Fall 2020 - E2067. Refactor student teams controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134567"/>
		<updated>2020-10-11T18:14:20Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
===Background===&lt;br /&gt;
The '''student_teams_controller.rb''' controller used in Expertiza to manipulate teams that are created for assignments. Primary functions that this controller provides is create a new team, update team name and delete members from a team.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation of our work is to improve the maintainability and readability '''student_teams_controller.rb''' Controller. Furthermore, we also fix several occasions where the '''student_teams_controller.rb''' contains code snippets that actually belongs to the model classes. This will help enforce single responsibility principle and model-view-controller pattern.&lt;br /&gt;
&lt;br /&gt;
===Task Identified===&lt;br /&gt;
* Move '''return unless current_user_id? student.user_id''' into '''action_allowed method'''&lt;br /&gt;
* Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class'''&lt;br /&gt;
* Remove variable '''current_team'''&lt;br /&gt;
* Add comment for '''@users_on_waiting_list''' and also simplify the condition&lt;br /&gt;
* Refactor '''@teammate_review_allowed''' into '''due_date.rb'''&lt;br /&gt;
* Rename '''existing_assignments?''' to '''existing_teams'''&lt;br /&gt;
* Add method comment for the '''update method'''&lt;br /&gt;
* Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?'''&lt;br /&gt;
* Add method comment for '''Advertise_for_partners''' and '''remove_advertisement'''&lt;br /&gt;
* Rename '''sign_up''' into '''signup'''&lt;br /&gt;
* Refactor code from '''remove_participant''' into '''waitlist.rb'''&lt;br /&gt;
* Add method comment for the '''review method'''&lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*/controllers/student_teams_controller.rb&lt;br /&gt;
*/models/waitlist.rb&lt;br /&gt;
*/models/due_date.rb&lt;br /&gt;
&lt;br /&gt;
==Code Review==&lt;br /&gt;
The purpose of this section is to provide the before and after change comparison so the developer can perform code review to ensure the correctness of the change. &lt;br /&gt;
&lt;br /&gt;
=== Move '''return unless current_user_id? student.user_id''' into '''action_allowed method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The action_allowed method determines whether an action is permissible, depending on the privileges of the user who is performing it.  In the view method, there is a clause that says, return unless current_user_id? student.user_id.  This needs to be moved to the when 'view' clause  in the action_allowed method.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code beginning at line 44 deals with due_dates, which are part of the “business logic” and should be moved to an appropriate model method.  Thus, @student.assignment.due_dates.each do |due_date|should invoke an appropriate method in due_date.rb.  It may or may not be necessary to add a method to the DueDates class.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Remove variable '''current_team''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The variable current_team seems unnecessary; it only saves one character vs. @student.team. Consider removing it.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Add comment for '''@users_on_waiting_list''' and also simplify the condition ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code on Line 53 (@users_on_waiting_list ...) is not clear at all.  Needs at least a comment, and also the condition should not be so complicated.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Refactor '''@teammate_review_allowed''' into '''due_date.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
In line 55, the @teammate_review_allowed: condition is way too complex, uses magic constants, and belongs in code in another model class (maybe due_date.rb); no way should it be in the controller!&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Rename '''existing_assignments?''' to '''existing_teams''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 59: existing_assignments is evidently a team!  So why is the variable name existing_assignments? It should perhaps be changed to existing_teams.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for the '''update method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The update method needs comments about what it is doing.&lt;br /&gt;
* Change Comparison (commit 7a9e39)&lt;br /&gt;
[[File:E2067_Issue7_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
The '''if''' condition checks if the new team name is NOT already exist, if so then update the team name. The '''elsif''' condition checks if the new team name is the same the current one, if so then nothing is changed. The '''else''' covers the case where the new team name is already in use, then print an error message and not changing the team name.&lt;br /&gt;
=== Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 95: Why isn’t (matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero? just (matching_teams[0].name == team.name)?&lt;br /&gt;
* Change Comparison (commit d60d92)&lt;br /&gt;
[[File:E2067_Issue8_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
This change is straight forward to satisfy the objective of the task.&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for '''Advertise_for_partners''' and '''remove_advertisement''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 108:  advertise_for_partners needs a method comment. Since its body is only 1 line, does it make sense to have a separate method for this?   It makes sense only if having a separate method improves readability.  Ditto for the remove_advertisement method at line 112.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Rename '''sign_up''' into '''signup''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The name sign_up needs to be signup; it is being used as a noun (sign_up would suggest a verb, the action of signing up).&lt;br /&gt;
* Change Comparison (commit e393ba)&lt;br /&gt;
[[File:E2067_Issue10_Fix.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
I performed a file search on '''sign_up''' and it only appears in the places shown in the screenshot. I replaced them with signup according to the objective.&lt;br /&gt;
=== Refactor code from '''remove_participant''' into '''waitlist.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
remove_participant is generally good code, but handling of waitlists is again model activity, and should be moved to a model class, perhaps waitlist.rb.&lt;br /&gt;
* Change Comparison (commit 504f84)&lt;br /&gt;
[[File:E2067_Issue11_Fix1.png|1000px]]&lt;br /&gt;
[[File:E2067_Issue11_Fix2.png|1000px]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
Line 127~142 in '''student_teams_controller.rb''' are moved to Line 14~29 in '''waitlist.rb'''. The only input to the new function '''remove_from_waitlists''' in '''waitlist.rb''' requires '''params[:team_id]''' from '''student_teams_controller.rb'''.&lt;br /&gt;
=== Add method comment for the '''review method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 169: The review method needs a method comment; its purpose is not clear.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
==Test==&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue11_Fix2.png&amp;diff=134563</id>
		<title>File:E2067 Issue11 Fix2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue11_Fix2.png&amp;diff=134563"/>
		<updated>2020-10-11T18:03:07Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue11_Fix1.png&amp;diff=134561</id>
		<title>File:E2067 Issue11 Fix1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue11_Fix1.png&amp;diff=134561"/>
		<updated>2020-10-11T18:01:31Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue7_Fix.png&amp;diff=134558</id>
		<title>File:E2067 Issue7 Fix.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue7_Fix.png&amp;diff=134558"/>
		<updated>2020-10-11T17:53:43Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue8_Fix.png&amp;diff=134557</id>
		<title>File:E2067 Issue8 Fix.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue8_Fix.png&amp;diff=134557"/>
		<updated>2020-10-11T17:45:15Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Tyeh3 uploaded a new version of File:E2067 Issue8 Fix.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue10_Fix.png&amp;diff=134556</id>
		<title>File:E2067 Issue10 Fix.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue10_Fix.png&amp;diff=134556"/>
		<updated>2020-10-11T17:39:59Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue10_After.png&amp;diff=134554</id>
		<title>File:E2067 Issue10 After.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue10_After.png&amp;diff=134554"/>
		<updated>2020-10-11T17:33:02Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue10_Before.png&amp;diff=134553</id>
		<title>File:E2067 Issue10 Before.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue10_Before.png&amp;diff=134553"/>
		<updated>2020-10-11T17:32:52Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134552</id>
		<title>CSC/ECE 517 Fall 2020 - E2067. Refactor student teams controller.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2067._Refactor_student_teams_controller.rb&amp;diff=134552"/>
		<updated>2020-10-11T16:26:09Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Added Sections to the page and completed the introduction section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
===Background===&lt;br /&gt;
The '''student_teams_controller.rb''' controller used in Expertiza to manipulate teams that are created for assignments. Primary functions that this controller provides is create a new team, update team name and delete members from a team.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation of our work is to improve the maintainability and readability '''student_teams_controller.rb''' Controller. Furthermore, we also fix several occasions where the '''student_teams_controller.rb''' contains code snippets that actually belongs to the model classes. This will help enforce single responsibility principle and model-view-controller pattern.&lt;br /&gt;
&lt;br /&gt;
===Task Identified===&lt;br /&gt;
* Move '''return unless current_user_id? student.user_id''' into '''action_allowed method'''&lt;br /&gt;
* Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class'''&lt;br /&gt;
* Remove variable '''current_team'''&lt;br /&gt;
* Add comment for '''@users_on_waiting_list''' and also simplify the condition&lt;br /&gt;
* Refactor '''@teammate_review_allowed''' into '''due_date.rb'''&lt;br /&gt;
* Rename '''existing_assignments?''' to '''existing_teams'''&lt;br /&gt;
* Add method comment for the '''update method'''&lt;br /&gt;
* Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?'''&lt;br /&gt;
* Add method comment for '''Advertise_for_partners''' and '''remove_advertisement'''&lt;br /&gt;
* Rename '''sign_up''' into '''signup'''&lt;br /&gt;
* Refactor code from '''remove_participant''' into '''waitlist.rb'''&lt;br /&gt;
* Add method comment for the '''review method'''&lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*/controllers/student_teams_controller.rb&lt;br /&gt;
*/models/waitlist.rb&lt;br /&gt;
*/models/due_date.rb&lt;br /&gt;
&lt;br /&gt;
==Code Review==&lt;br /&gt;
The purpose of this section is to provide the before and after change comparison so the developer can perform code review to ensure the correctness of the change. &lt;br /&gt;
&lt;br /&gt;
=== Move '''return unless current_user_id? student.user_id''' into '''action_allowed method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The action_allowed method determines whether an action is permissible, depending on the privileges of the user who is performing it.  In the view method, there is a clause that says, return unless current_user_id? student.user_id.  This needs to be moved to the when 'view' clause  in the action_allowed method.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Refactor code from '''view function''' into may or may not be necessary to add a method to the '''DueDates class''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code beginning at line 44 deals with due_dates, which are part of the “business logic” and should be moved to an appropriate model method.  Thus, @student.assignment.due_dates.each do |due_date|should invoke an appropriate method in due_date.rb.  It may or may not be necessary to add a method to the DueDates class.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Remove variable '''current_team''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The variable current_team seems unnecessary; it only saves one character vs. @student.team. Consider removing it.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Add comment for '''@users_on_waiting_list''' and also simplify the condition ===&lt;br /&gt;
* Objective&lt;br /&gt;
The code on Line 53 (@users_on_waiting_list ...) is not clear at all.  Needs at least a comment, and also the condition should not be so complicated.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Refactor '''@teammate_review_allowed''' into '''due_date.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
In line 55, the @teammate_review_allowed: condition is way too complex, uses magic constants, and belongs in code in another model class (maybe due_date.rb); no way should it be in the controller!&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Rename '''existing_assignments?''' to '''existing_teams''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 59: existing_assignments is evidently a team!  So why is the variable name existing_assignments? It should perhaps be changed to existing_teams.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for the '''update method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The update method needs comments about what it is doing.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Change '''(matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero?''' to '''(matching_teams[0].name == team.name)?''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 95: Why isn’t (matching_teams[0].name &amp;lt;=&amp;gt; team.name).zero? just (matching_teams[0].name == team.name)?&lt;br /&gt;
* Change Comparison&lt;br /&gt;
[[File:E2067_Issue8_Fix.png]]&lt;br /&gt;
* Change Explanation&lt;br /&gt;
This change is straight forward to satisfy the objective of the task.&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for '''Advertise_for_partners''' and '''remove_advertisement''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 108:  advertise_for_partners needs a method comment. Since its body is only 1 line, does it make sense to have a separate method for this?   It makes sense only if having a separate method improves readability.  Ditto for the remove_advertisement method at line 112.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Rename '''sign_up''' into '''signup''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
The name sign_up needs to be signup; it is being used as a noun (sign_up would suggest a verb, the action of signing up).&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Refactor code from '''remove_participant''' into '''waitlist.rb''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
remove_participant is generally good code, but handling of waitlists is again model activity, and should be moved to a model class, perhaps waitlist.rb.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
=== Add method comment for the '''review method''' ===&lt;br /&gt;
* Objective&lt;br /&gt;
Line 169: The review method needs a method comment; its purpose is not clear.&lt;br /&gt;
* Change Comparison&lt;br /&gt;
&lt;br /&gt;
* Change Explanation&lt;br /&gt;
&lt;br /&gt;
==Test==&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue8_Fix.png&amp;diff=134551</id>
		<title>File:E2067 Issue8 Fix.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2067_Issue8_Fix.png&amp;diff=134551"/>
		<updated>2020-10-11T16:20:00Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020&amp;diff=134476</id>
		<title>CSC/ECE 517 Fall 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020&amp;diff=134476"/>
		<updated>2020-10-10T14:17:44Z</updated>

		<summary type="html">&lt;p&gt;Tyeh3: Added new link to the E2067 Doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Dummy URL]]&lt;br /&gt;
* [[Dummy Url2]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2068. Refactor quiz_questionnaires_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2062. Add test cases to review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2066. Refactor lottery controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2067. Refactor student_teams_controller.rb]]&lt;/div&gt;</summary>
		<author><name>Tyeh3</name></author>
	</entry>
</feed>