<?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=Pchheda</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=Pchheda"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Pchheda"/>
	<updated>2026-05-11T12:32:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106231</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106231"/>
		<updated>2016-12-03T00:56:18Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Manual Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken by reviewers in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each team reviewed for this particular assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, we can see that this report is simply an overview. If the instructor wishes to view fine-grained details, he can click on the reviewer link in the report. A popup is then rendered by '''popup/reviewer_details_popup.html.erb'''. This view shows reviewer details and details of time spent per link per round by that particular reviewer. Note - total time represents total time spent by the reviewer over all rounds over all links. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the user clicks on &amp;quot;alternate view&amp;quot; for a particular round, a pie-chart representation of the same data for that round appears above the details table. The user can toggle this view off by clicking &amp;quot;hide details&amp;quot; and &amp;quot;show details&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Pie-chart.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Testing'''==&lt;br /&gt;
==='''Manual Testing'''===&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the total time spent by the reviewers for each to be visible&lt;br /&gt;
#Click on the reviewer in order to see detailed information of time spent by each reviewer&lt;br /&gt;
#Click on alternate view for each entry in order to see link wise time spent in form of a pie chart.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106230</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106230"/>
		<updated>2016-12-03T00:56:05Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken by reviewers in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each team reviewed for this particular assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, we can see that this report is simply an overview. If the instructor wishes to view fine-grained details, he can click on the reviewer link in the report. A popup is then rendered by '''popup/reviewer_details_popup.html.erb'''. This view shows reviewer details and details of time spent per link per round by that particular reviewer. Note - total time represents total time spent by the reviewer over all rounds over all links. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the user clicks on &amp;quot;alternate view&amp;quot; for a particular round, a pie-chart representation of the same data for that round appears above the details table. The user can toggle this view off by clicking &amp;quot;hide details&amp;quot; and &amp;quot;show details&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Pie-chart.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Testing'''==&lt;br /&gt;
==='''Manual Testing'''===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the total time spent by the reviewers for each to be visible&lt;br /&gt;
#Click on the reviewer in order to see detailed information of time spent by each reviewer&lt;br /&gt;
#Click on alternate view for each entry in order to see link wise time spent in form of a pie chart.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106229</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106229"/>
		<updated>2016-12-03T00:55:30Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken by reviewers in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each team reviewed for this particular assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, we can see that this report is simply an overview. If the instructor wishes to view fine-grained details, he can click on the reviewer link in the report. A popup is then rendered by '''popup/reviewer_details_popup.html.erb'''. This view shows reviewer details and details of time spent per link per round by that particular reviewer. Note - total time represents total time spent by the reviewer over all rounds over all links. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the user clicks on &amp;quot;alternate view&amp;quot; for a particular round, a pie-chart representation of the same data for that round appears above the details table. The user can toggle this view off by clicking &amp;quot;hide details&amp;quot; and &amp;quot;show details&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Pie-chart.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Testing'''==&lt;br /&gt;
'''Manual testing:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the total time spent by the reviewers for each to be visible&lt;br /&gt;
#Click on the reviewer in order to see detailed information of time spent by each reviewer&lt;br /&gt;
#Click on alternate view for each entry in order to see link wise time spent in form of a pie chart.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106228</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106228"/>
		<updated>2016-12-03T00:53:06Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Viewing the recorded times spent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken by reviewers in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each team reviewed for this particular assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, we can see that this report is simply an overview. If the instructor wishes to view fine-grained details, he can click on the reviewer link in the report. A popup is then rendered by '''popup/reviewer_details_popup.html.erb'''. This view shows reviewer details and details of time spent per link per round by that particular reviewer. Note - total time represents total time spent by the reviewer over all rounds over all links. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the user clicks on &amp;quot;alternate view&amp;quot; for a particular round, a pie-chart representation of the same data for that round appears above the details table. The user can toggle this view off by clicking &amp;quot;hide details&amp;quot; and &amp;quot;show details&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Pie-chart.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Manual testing:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the total time spent by the reviewers for each to be visible&lt;br /&gt;
#Click on the reviewer in order to see detailed information of time spent by each reviewer&lt;br /&gt;
#Click on alternate view for each entry in order to see link wise time spent in form of a pie chart.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106226</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106226"/>
		<updated>2016-12-03T00:52:44Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Viewing the recorded times spent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken by reviewers in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each team reviewed for this particular assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, we can see that this report is simply an overview. If the instructor wishes to view fine-grained details, he can click on the reviewer link in the report. A popup is then rendered by '''popup/reviewer_details_popup.html.erb'''. This view shows reviewer details and details of time spent per link per round by that particular reviewer. Note - total time represents total time spent by the reviewer over all rounds over all links. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the user clicks on &amp;quot;alternate view&amp;quot; for a particular round, a pie-chart representation of the same data for that round appears above the details table. The user can toggle this view off by clicking &amp;quot;hide details&amp;quot; and &amp;quot;show details&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Pie-chart.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Manual testing:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the total time spent by the reviewers for each to be visible&lt;br /&gt;
#In order to see detailed information &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106225</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106225"/>
		<updated>2016-12-03T00:52:24Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Viewing the recorded times spent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken by reviewers in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each team reviewed for this particular assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, we can see that this report is simply an overview. If the instructor wishes to view fine-grained details, he can click on the reviewer link in the report. A popup is then rendered by '''popup/reviewer_details_popup.html.erb'''. This view shows reviewer details and details of time spent per link per round by that particular reviewer. Note - total time represents total time spent by the reviewer over all rounds over all links. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the user clicks on &amp;quot;alternate view&amp;quot; for a particular round, a pie-chart representation of the same data for that round appears above the details table. The user can toggle this view off by clicking &amp;quot;hide details&amp;quot; and &amp;quot;show details&amp;quot;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Pie-chart.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Manual testing:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the total time spent by the reviewers for each to be visible&lt;br /&gt;
#In order to see detailed information &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Pie-chart.png&amp;diff=106224</id>
		<title>File:Pie-chart.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Pie-chart.png&amp;diff=106224"/>
		<updated>2016-12-03T00:51:52Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106220</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106220"/>
		<updated>2016-12-03T00:49:10Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Viewing the recorded times spent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken by reviewers in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each team reviewed for this particular assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, we can see that this report is simply an overview. If the instructor wishes to view fine-grained details, he can click on the reviewer link in the report. A popup is then rendered by '''popup/reviewer_details_popup.html.erb'''. This view shows reviewer details and details of time spent per link per round by that particular reviewer. Note - total time represents total time spent by the reviewer over all rounds over all links. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the user clicks on &amp;quot;alternate view&amp;quot; for a particular round, a pie-chart representation of the same data for that round appears above the details table. The user can toggle this view off by clicking &amp;quot;hide details&amp;quot; and &amp;quot;show details&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Manual testing:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the total time spent by the reviewers for each to be visible&lt;br /&gt;
#In order to see detailed information &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106196</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106196"/>
		<updated>2016-12-03T00:28:49Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* What needs to be done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106194</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106194"/>
		<updated>2016-12-03T00:27:15Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Files modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106193</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106193"/>
		<updated>2016-12-03T00:26:57Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Other Edge cases handled : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106192</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106192"/>
		<updated>2016-12-03T00:26:42Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Other Edge cases handled : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106190</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106190"/>
		<updated>2016-12-03T00:26:19Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Other Edge cases handled : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
##If the user downloads any submission, the start time will be recorded on click link and end time will get recorded as above or when he submits the review&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106179</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106179"/>
		<updated>2016-12-02T23:58:31Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Other Edge cases handled : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: &lt;br /&gt;
##It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. &lt;br /&gt;
##We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: &lt;br /&gt;
#If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106178</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106178"/>
		<updated>2016-12-02T23:57:55Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Viewing the recorded times spent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]]&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106177</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106177"/>
		<updated>2016-12-02T23:57:23Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Edge cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Other Edge cases handled :'''===&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106161</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106161"/>
		<updated>2016-12-02T23:43:11Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Files modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb &lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106156</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106156"/>
		<updated>2016-12-02T23:37:32Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Viewing the recorded times spent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Review_report_view.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_report_view.png&amp;diff=106155</id>
		<title>File:Review report view.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_report_view.png&amp;diff=106155"/>
		<updated>2016-12-02T23:37:14Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReport1.png&amp;diff=106153</id>
		<title>File:ReviewReport1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReport1.png&amp;diff=106153"/>
		<updated>2016-12-02T23:36:13Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: uploaded a new version of &amp;amp;quot;File:ReviewReport1.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReport1.png&amp;diff=106151</id>
		<title>File:ReviewReport1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReport1.png&amp;diff=106151"/>
		<updated>2016-12-02T23:35:35Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: uploaded a new version of &amp;amp;quot;File:ReviewReport1.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106141</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106141"/>
		<updated>2016-12-02T23:25:55Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Viewing the recorded times spent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the total times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32, 12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106135</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106135"/>
		<updated>2016-12-02T23:21:54Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106133</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106133"/>
		<updated>2016-12-02T23:21:24Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106132</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106132"/>
		<updated>2016-12-02T23:20:11Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Popup screenshot.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Popup_screenshot.png&amp;diff=106131</id>
		<title>File:Popup screenshot.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Popup_screenshot.png&amp;diff=106131"/>
		<updated>2016-12-02T23:19:32Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106124</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106124"/>
		<updated>2016-12-02T23:11:38Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Approach and Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Viewing the recorded times spent'''===&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106111</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106111"/>
		<updated>2016-12-02T22:53:46Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106109</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106109"/>
		<updated>2016-12-02T22:52:42Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow_diagram_final.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Flow_diagram_final.jpg&amp;diff=106108</id>
		<title>File:Flow diagram final.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Flow_diagram_final.jpg&amp;diff=106108"/>
		<updated>2016-12-02T22:52:24Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106105</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106105"/>
		<updated>2016-12-02T22:48:05Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow diagram.jpg|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Flow_diagram.jpg&amp;diff=106104</id>
		<title>File:Flow diagram.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Flow_diagram.jpg&amp;diff=106104"/>
		<updated>2016-12-02T22:47:33Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106084</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106084"/>
		<updated>2016-12-02T22:05:14Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Purpose */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106070</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106070"/>
		<updated>2016-12-02T17:40:28Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. &lt;br /&gt;
#As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106069</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106069"/>
		<updated>2016-12-02T17:31:49Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database.&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database.  All these cases are handled with the help of javascript '''onbeforeunload''' property&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106068</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106068"/>
		<updated>2016-12-02T17:29:06Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the '''start time''' when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save '''end time''' details to database&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106067</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106067"/>
		<updated>2016-12-02T17:28:03Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the start time when a user clicks on a submitted link (a new entry in the '''response_times table''' gets created) during new review or while editing his saved review. An AJAX call is made from the view to '''ResponseTime''' controller action '''record_start_time''' to save start time details to database&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the cases mentioned below. In this, an AJAX call is made from the view to '''ResponseTime''' controller action '''record_end_time''' to save end time details to database&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106064</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106064"/>
		<updated>2016-12-02T17:24:47Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* How reviewing times get recorded in the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the start time when a user clicks on a submitted link (a new entry in the response_times table gets created) during new review or while editing his saved review. An AJAX call is made from the view to response_time_controller.rb/record_start_time to save start time details to database&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the following cases&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106062</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106062"/>
		<updated>2016-12-02T17:21:07Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Approach and Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the start time when a user clicks on a submitted link (a new entry in the response_times table gets created) during new review or while editing his saved review&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the following cases&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106061</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106061"/>
		<updated>2016-12-02T17:18:27Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Database Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response.  &amp;lt;br/&amp;gt;&lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the start time when a user clicks on a submitted link (a new entry in the response_times table gets created) during new review or while editing his saved review&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the following cases&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106060</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106060"/>
		<updated>2016-12-02T17:17:59Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Database Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response. &lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the start time when a user clicks on a submitted link (a new entry in the response_times table gets created) during new review or while editing his saved review&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the following cases&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106059</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106059"/>
		<updated>2016-12-02T17:16:32Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Database Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response. &lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Response_times.png]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the start time when a user clicks on a submitted link (a new entry in the response_times table gets created) during new review or while editing his saved review&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the following cases&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Response_times.png&amp;diff=106058</id>
		<title>File:Response times.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Response_times.png&amp;diff=106058"/>
		<updated>2016-12-02T17:16:01Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106057</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=106057"/>
		<updated>2016-12-02T17:13:39Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Approach and Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze how much a student learns from others' work, we want to be able to track the time that students spend observing the the same. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Design a database schema for logging the time a reviewer spends on each submission link&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to display the response time summary report for each reviewer.&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The task is to know how much time a reviewer spent reviewing other teams.&lt;br /&gt;
#We earlier thought of having '''response_id''' as one of the fields which could help us identify for which response we are recording reviewing time. But, entry in the''' responses table''' is created only once the response is either saved or submitted. Since we want our response_times entry to be created before that, we did not have any '''response_id''' corresponding to the response. &lt;br /&gt;
#We primarily needed reviewer and reviewee specific data. So, another parameter to help us identify this primary information was '''response_map_id''' in the '''response_maps''' table. Once the review is started , we have the '''response_map_id''' from which we can later derive both '''reviewer_id''' and '''reviewee_id'''.There can be separate links uploaded per round, hence '''round''' is also an important parameter to be recorded. We need to record '''start''' and '''end''' time per '''link'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
The following table '''response_times''' was created to implement a solution for this project: &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Database table review submission timing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''How reviewing times get recorded in the database'''===&lt;br /&gt;
Start and end time of each link viewed in one session needs to be recorded. &lt;br /&gt;
&lt;br /&gt;
The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Log the start time when a user clicks on a submitted link (a new entry in the response_times table gets created) during new review or while editing his saved review&lt;br /&gt;
#End time of all open links (where end time has not been recorded yet) for that session get recorded in the following cases&lt;br /&gt;
##User logged out&lt;br /&gt;
##User closed the window&lt;br /&gt;
##User clicked on 'save' or 'submit' button&lt;br /&gt;
##User switched to some other view other than the page where he is currently writing the review in the same tab. Note - the user is free to switch between tabs. The end time will not get affected in this case&lt;br /&gt;
#Next time the reviewer opens the links again to review:&lt;br /&gt;
##New entry gets created in the response_times table and start time gets recorded for this new session&lt;br /&gt;
##The above procedure for end time remains the same&lt;br /&gt;
#In case there is no user activity on the expertiza reviewing page for more than 20 minutes, there will be a pop up asking the user if he is still reviewing the submission. As soon as the pop up is shown, the end times of all open links get updated to this time. The user has two options to cancel or to okay. If the user clicks on 'okay', then the above links for which we just updated the end time, need to be added as new entries again in this new session with start time as the current time.&lt;br /&gt;
#This way we have individual entries for each link corresponding to each session with both start and end times recorded in the database.&lt;br /&gt;
&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Flow.JPG|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review as shown below.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user clicks on the same link twice in the same session: It may so happen that once the user clicked on a link, by mistake he/she closed it or lost the link and wishes to view it again. If the link is again clicked, a second entry gets created with the current time as start time. We account for the previous entry by updating its end time as current time. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files modified'''===&lt;br /&gt;
#response_controller.rb&lt;br /&gt;
#response/response.html.erb&lt;br /&gt;
#submitted_content/_main.html.erb&lt;br /&gt;
#submitted_content/_hyperlink.html.erb&lt;br /&gt;
#response/view.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#popup/reviewer_details_popup.html.erb&lt;br /&gt;
#helpers/review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#config/routes.rb&lt;br /&gt;
#application.js&lt;br /&gt;
&lt;br /&gt;
==='''Files added'''===&lt;br /&gt;
#response_time_controller.rb&lt;br /&gt;
#response_time.rb&lt;br /&gt;
#review_mapping/_review_submissions_time_spent.html.erb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
'''Functional Testing using RSpec:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Manual Testing for Verification:''' &lt;br /&gt;
#When user clicks on a submitted link, it opens up in a new window&lt;br /&gt;
#To verify if the time displayed in the response_report view matches with the actual time spent by the reviewer for all reviews&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105692</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105692"/>
		<updated>2016-11-14T22:53:18Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Approach and Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze quality of reviews, we want to be able to track the time that students spend observing the other's work. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Modify the reviewer interface in expertiza to accommodate your solution e.g., change the link that opens submitted files in views/response/_submitted_files.html.erb so that when the user clicks on the link, it opens a popup window that shows the submission, record time when it opens and closes.&lt;br /&gt;
#Design a database schema for logging the time a reviewer spend on a submission&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to show the time spent on each submission&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Based on each submission type, we need to handle the tracking functionalities differently. Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Steps to follow for all external links (Github, YouTube etc)'''===&lt;br /&gt;
On clicking a submitted link available in '''submitted_content/submitted_files.html.erb''', a new window will pop-up that will keep track of the time spent on that new window. This can be a link to any of the above-mentioned submissions. &amp;lt;br/&amp;gt;&lt;br /&gt;
Our solution is to embed the submissions (done on an external website) within the peer assessment system itself using e.g., '''IFrame''' or '''Embed''' tag. &lt;br /&gt;
We shall include two new javascript files - '''TimeMe.js''' and '''IfVisible.js''' to keep track of open submission links and time spent viewing them. &amp;lt;br/&amp;gt; The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Start the time when a user clicks on the submitted link (a new window pops-up)&lt;br /&gt;
#We'll pause the time in the following cases:&lt;br /&gt;
##User idle for more than 30sec&lt;br /&gt;
##User switched tabs&lt;br /&gt;
##User minimized the window&lt;br /&gt;
#Resume time when:&lt;br /&gt;
##User switches back to this window&lt;br /&gt;
##User performs some activity after being idle&lt;br /&gt;
#Time is saved into the database when the user saves, submits review or closes the popped-up window&lt;br /&gt;
##If the corresponding entry already exists, the value of the time column is updated otherwise it is created.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Behaviour_diagram.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user refreshes the window : It will set the timer back to 0 and the time spent on that page will be reset &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The following table review_submission_timing will be created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Database table review submission timing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files to be modified/added'''===&lt;br /&gt;
#submitted_content/submitted_files.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#Additionally, we will create a new model class corresponding to new database table&lt;br /&gt;
#TimeMe.js and IfVisible.js for handling timing counter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;Steps:&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database.&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible.&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105690</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105690"/>
		<updated>2016-11-14T22:52:47Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Files to be modified/added */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze quality of reviews, we want to be able to track the time that students spend observing the other's work. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Modify the reviewer interface in expertiza to accommodate your solution e.g., change the link that opens submitted files in views/response/_submitted_files.html.erb so that when the user clicks on the link, it opens a popup window that shows the submission, record time when it opens and closes.&lt;br /&gt;
#Design a database schema for logging the time a reviewer spend on a submission&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to show the time spent on each submission&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Based on each submission type, we need to handle the tracking functionalities differently. Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Steps to follow for all external links (Github, YouTube etc)'''===&lt;br /&gt;
On clicking a submitted link available in '''submitted_content/submitted_files.html.erb''', a new window will pop-up that will keep track of the time spent on that new window. This can be a link to any of the above-mentioned submissions. &amp;lt;br/&amp;gt;&lt;br /&gt;
Our solution is to embed the submissions (done on an external website) within the peer assessment system itself using e.g., '''IFrame''' or '''Embed''' tag. &lt;br /&gt;
We shall include two new javascript files - '''TimeMe.js''' and '''IfVisible.js''' to keep track of open submission links and time spent viewing them. &amp;lt;br/&amp;gt; The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Start the time when a user clicks on the submitted link (a new window pops-up)&lt;br /&gt;
#We'll pause the time in the following cases:&lt;br /&gt;
##User idle for more than 30sec&lt;br /&gt;
##User switched tabs&lt;br /&gt;
##User minimized the window&lt;br /&gt;
#Resume time when:&lt;br /&gt;
##User switches back to this window&lt;br /&gt;
##User performs some activity after being idle&lt;br /&gt;
#Time is saved into the database when the user saves, submits review or closes the popped-up window&lt;br /&gt;
##If the corresponding entry already exists, the value of the time column is updated otherwise it is created.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Behaviour_diagram.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user refreshes the window : It will set the timer back to 0 and the time spent on that page will be reset &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The following table review_submission_timing will be created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Database table review submission timing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files to be modified/added'''===&lt;br /&gt;
#submitted_content/submitted_files.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#Additionally, we will create a new model class corresponding to new database table&lt;br /&gt;
#TimeMe.js and IfVisible.js for handling timing counter&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;Steps:&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database.&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible.&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105689</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105689"/>
		<updated>2016-11-14T22:52:25Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze quality of reviews, we want to be able to track the time that students spend observing the other's work. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Modify the reviewer interface in expertiza to accommodate your solution e.g., change the link that opens submitted files in views/response/_submitted_files.html.erb so that when the user clicks on the link, it opens a popup window that shows the submission, record time when it opens and closes.&lt;br /&gt;
#Design a database schema for logging the time a reviewer spend on a submission&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to show the time spent on each submission&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Based on each submission type, we need to handle the tracking functionalities differently. Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Steps to follow for all external links (Github, YouTube etc)'''===&lt;br /&gt;
On clicking a submitted link available in '''submitted_content/submitted_files.html.erb''', a new window will pop-up that will keep track of the time spent on that new window. This can be a link to any of the above-mentioned submissions. &amp;lt;br/&amp;gt;&lt;br /&gt;
Our solution is to embed the submissions (done on an external website) within the peer assessment system itself using e.g., '''IFrame''' or '''Embed''' tag. &lt;br /&gt;
We shall include two new javascript files - '''TimeMe.js''' and '''IfVisible.js''' to keep track of open submission links and time spent viewing them. &amp;lt;br/&amp;gt; The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Start the time when a user clicks on the submitted link (a new window pops-up)&lt;br /&gt;
#We'll pause the time in the following cases:&lt;br /&gt;
##User idle for more than 30sec&lt;br /&gt;
##User switched tabs&lt;br /&gt;
##User minimized the window&lt;br /&gt;
#Resume time when:&lt;br /&gt;
##User switches back to this window&lt;br /&gt;
##User performs some activity after being idle&lt;br /&gt;
#Time is saved into the database when the user saves, submits review or closes the popped-up window&lt;br /&gt;
##If the corresponding entry already exists, the value of the time column is updated otherwise it is created.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Behaviour_diagram.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user refreshes the window : It will set the timer back to 0 and the time spent on that page will be reset &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The following table review_submission_timing will be created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Database table review submission timing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files to be modified/added'''===&lt;br /&gt;
#submitted_content/submitted_files.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#Additionally, we will create a new model class corresponding to new database table&lt;br /&gt;
#TimeMe.js and IfVisible.js for handling timing counter &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;Steps:&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database.&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible.&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105688</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105688"/>
		<updated>2016-11-14T22:51:39Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Approach and Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze quality of reviews, we want to be able to track the time that students spend observing the other's work. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Modify the reviewer interface in expertiza to accommodate your solution e.g., change the link that opens submitted files in views/response/_submitted_files.html.erb so that when the user clicks on the link, it opens a popup window that shows the submission, record time when it opens and closes.&lt;br /&gt;
#Design a database schema for logging the time a reviewer spend on a submission&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to show the time spent on each submission&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Based on each submission type, we need to handle the tracking functionalities differently. Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Steps to follow for all external links (Github, YouTube etc)'''===&lt;br /&gt;
On clicking a submitted link available in '''submitted_content/submitted_files.html.erb''', a new window will pop-up that will keep track of the time spent on that new window. This can be a link to any of the above-mentioned submissions. &amp;lt;br/&amp;gt;&lt;br /&gt;
Our solution is to embed the submissions (done on an external website) within the peer assessment system itself using e.g., '''IFrame''' or '''Embed''' tag. &lt;br /&gt;
We shall include two new javascript files - '''TimeMe.js''' and '''IfVisible.js''' to keep track of open submission links and time spent viewing them. &amp;lt;br/&amp;gt; The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Start the time when a user clicks on the submitted link (a new window pops-up)&lt;br /&gt;
#We'll pause the time in the following cases:&lt;br /&gt;
##User idle for more than 30sec&lt;br /&gt;
##User switched tabs&lt;br /&gt;
##User minimized the window&lt;br /&gt;
#Resume time when:&lt;br /&gt;
##User switches back to this window&lt;br /&gt;
##User performs some activity after being idle&lt;br /&gt;
#Time is saved into the database when the user saves, submits review or closes the popped-up window&lt;br /&gt;
##If the corresponding entry already exists, the value of the time column is updated otherwise it is created.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Behaviour_diagram.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user refreshes the window : It will set the timer back to 0 and the time spent on that page will be reset &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The following table review_submission_timing will be created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Database table review submission timing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files to be modified/added'''===&lt;br /&gt;
#submitted_content/submitted_files.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#Additionally, we will create a new model class corresponding to new database table&lt;br /&gt;
#TimeMe.js and IfVisible.js for handling timing counter &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;Steps:&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database.&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible.&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105687</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105687"/>
		<updated>2016-11-14T22:51:12Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Edge cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze quality of reviews, we want to be able to track the time that students spend observing the other's work. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Modify the reviewer interface in expertiza to accommodate your solution e.g., change the link that opens submitted files in views/response/_submitted_files.html.erb so that when the user clicks on the link, it opens a popup window that shows the submission, record time when it opens and closes.&lt;br /&gt;
#Design a database schema for logging the time a reviewer spend on a submission&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to show the time spent on each submission&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Based on each submission type, we need to handle the tracking functionalities differently. Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Steps to follow for all external links (Github, YouTube etc)'''===&lt;br /&gt;
On clicking a submitted link available in '''submitted_content/submitted_files.html.erb''', a new window will pop-up that will keep track of the time spent on that new window. This can be a link to any of the above-mentioned submissions. &amp;lt;br/&amp;gt;&lt;br /&gt;
Our solution is to embed the submissions (done on an external website) within the peer assessment system itself using e.g., '''IFrame''' or '''Embed''' tag. &lt;br /&gt;
We shall include two new javascript files - '''TimeMe.js''' and '''IfVisible.js''' to keep track of open submission links and time spent viewing them. &amp;lt;br/&amp;gt; The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Start the time when a user clicks on the submitted link (a new window pops-up)&lt;br /&gt;
#We'll pause the time in the following cases:&lt;br /&gt;
##User idle for more than 30sec&lt;br /&gt;
##User switched tabs&lt;br /&gt;
##User minimized the window&lt;br /&gt;
#Resume time when:&lt;br /&gt;
##User switches back to this window&lt;br /&gt;
##User performs some activity after being idle&lt;br /&gt;
#Time is saved into the database when the user saves, submits review or closes the popped-up window&lt;br /&gt;
##If the corresponding entry already exists, the value of the time column is updated otherwise it is created.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Behaviour_diagram.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user refreshes the window : It will set the timer back to 0 and the time spent on that page will be reset &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The following table review_submission_timing will be created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Database table review submission timing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files to be modified/added'''===&lt;br /&gt;
#submitted_content/submitted_files.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#Additionally, we will create a new model class corresponding to new database table&lt;br /&gt;
#TimeMe.js and IfVisible.js for handling timing counter &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;Steps:&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database.&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible.&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105686</id>
		<title>CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions&amp;diff=105686"/>
		<updated>2016-11-14T22:50:35Z</updated>

		<summary type="html">&lt;p&gt;Pchheda: /* Approach and Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
==='''Purpose'''===&lt;br /&gt;
Expertiza provides the functionality of peer reviews. The best advantage of peer review for the students is that it allows students to learn from each other work. &lt;br /&gt;
#It provides a dual benefit for both the reviewer and the writer as they are introduced to a different set of eyes on the code&lt;br /&gt;
#It might expose edge cases not previously thought of&lt;br /&gt;
#It helps instructors review a project faster&lt;br /&gt;
#It emphasizes the importance of writing in such a way that it's easy for a third person to read and understand&lt;br /&gt;
In order to assess and analyze quality of reviews, we want to be able to track the time that students spend observing the other's work. Unfortunately, most peer assessment systems do not manage the content of students’ submission within the systems. They usually allow the authors submit external links to the submission, which makes it difficult for the system to track the time that the reviewers spend on the submissions. To assess and improve review qualities, the purpose of the project is to be able to successfully track the time that each student spends on peer reviewing the work.&lt;br /&gt;
&lt;br /&gt;
==='''What needs to be done'''===&lt;br /&gt;
#Design and implement a solution that handles the use case, where students’ submissions are hosted on an external website e.g. GitHub and Youtube use cases&lt;br /&gt;
#Modify the reviewer interface in expertiza to accommodate your solution e.g., change the link that opens submitted files in views/response/_submitted_files.html.erb so that when the user clicks on the link, it opens a popup window that shows the submission, record time when it opens and closes.&lt;br /&gt;
#Design a database schema for logging the time a reviewer spend on a submission&lt;br /&gt;
#Modify Review report (views/review_mapping/_review_report.html.erb) to show the time spent on each submission&lt;br /&gt;
&lt;br /&gt;
=='''Approach and Implementation'''==&lt;br /&gt;
==='''Types of submissions'''===&lt;br /&gt;
&lt;br /&gt;
Based on each submission type, we need to handle the tracking functionalities differently. Generally, the submission links can be one of the following:&lt;br /&gt;
#GitHub project/repository link , GitHub Pull requests link or Deployment link&lt;br /&gt;
#Youtube videos &lt;br /&gt;
#Wikipages&lt;br /&gt;
#Text document/doc/pdf/ppt&lt;br /&gt;
#Images - png/jpg&lt;br /&gt;
#Downloadable contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Steps to follow for all external links (Github, YouTube etc)'''===&lt;br /&gt;
On clicking a submitted link available in '''submitted_content/submitted_files.html.erb''', a new window will pop-up that will keep track of the time spent on that new window. This can be a link to any of the above-mentioned submissions. &amp;lt;br/&amp;gt;&lt;br /&gt;
Our solution is to embed the submissions (done on an external website) within the peer assessment system itself using e.g., '''IFrame''' or '''Embed''' tag. &lt;br /&gt;
We shall include two new javascript files - '''TimeMe.js''' and '''IfVisible.js''' to keep track of open submission links and time spent viewing them. &amp;lt;br/&amp;gt; The following are the steps that will be followed to keep track of the time: &lt;br /&gt;
#Start the time when a user clicks on the submitted link (a new window pops-up)&lt;br /&gt;
#We'll pause the time in the following cases:&lt;br /&gt;
##User idle for more than 30sec&lt;br /&gt;
##User switched tabs&lt;br /&gt;
##User minimized the window&lt;br /&gt;
#Resume time when:&lt;br /&gt;
##User switches back to this window&lt;br /&gt;
##User performs some activity after being idle&lt;br /&gt;
#Time is saved into the database when the user saves, submits review or closes the popped-up window&lt;br /&gt;
##If the corresponding entry already exists, the value of the time column is updated otherwise it is created.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Behaviour Diagram''' :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Behaviour_diagram.png|center]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Instructor can now view the times taken for reviewers by reviewer in the Review report summary. This report is rendered by partial '''review_mapping/_review_report.html.erb'''. We shall modify this view to record the times spent by the reviewer per review round for each assignment. For example - 15.32/12.67 indicates that reviewer spent 15.32 minutes on round 1 review and 12.67 minutes on round 2 review.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Modified View''' :&amp;lt;br/&amp;gt;[[File:ReviewReport1.png|center]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Edge cases'''===&lt;br /&gt;
&lt;br /&gt;
Edge cases that need to be handled :&lt;br /&gt;
&lt;br /&gt;
#What happens when the user refreshes the window : It will set the timer back to 0 and the time spent on that page will be reset. &lt;br /&gt;
#What happens when the user downloads the submission: If the user downloads any solution and then opens it in his/her local machine, then the time spent on that can't be tracked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Database Design'''===&lt;br /&gt;
The following table review_submission_timing will be created to implement a solution for this project: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Database table review submission timing.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Files to be modified/added'''===&lt;br /&gt;
#submitted_content/submitted_files.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping/_review_report.html.erb&lt;br /&gt;
#review_mapping_helper.rb (method- get_data_for_review_report)&lt;br /&gt;
#Additionally, we will create a new model class corresponding to new database table&lt;br /&gt;
#TimeMe.js and IfVisible.js for handling timing counter &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Test Plan'''===&lt;br /&gt;
To test if the time spent by the reviewer on the submitted links shows up in the response_report in Instructor View. &amp;lt;br/&amp;gt;Steps:&lt;br /&gt;
# Login as a reviewer, for example (student5930). Click on the submitted links to start reviewing. Once review is done, the time spent is recorded in the background and saved in our database.&lt;br /&gt;
# Login as an instructor. Click on assignments tab. Click on 'View Review Report' under actions for the particular assignment. In the view rendered we expect the new content of time spent by the reviewers to be visible.&lt;/div&gt;</summary>
		<author><name>Pchheda</name></author>
	</entry>
</feed>