<?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=Fcdevita</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=Fcdevita"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Fcdevita"/>
	<updated>2026-05-19T22:07:46Z</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_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=130483</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=130483"/>
		<updated>2019-12-06T23:50:34Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Algorithm For Precise Timing Accuracy  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
; The time spent on the Expertiza assignment review page needs to be tracked. &lt;br /&gt;
*This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.&lt;br /&gt;
*To prevent the user from cheating the system by just keeping the review page open without doing work, a timeout feature will be implemented. After 5 minutes of mouse/keyboard inactivity, a popup will be displayed asking if the user is still working. At that point, the time contributed towards the total by the Expertiza page will stop being tracked until the user interacts with the popup to indicate they are still working. This is already implemented in project [https://github.com/expertiza/expertiza/pull/1124 E1791].&lt;br /&gt;
&lt;br /&gt;
; The time spent viewing the external links and downloadable files will need to be made more accurate.&lt;br /&gt;
*Currently, if a student has an external link open as well as the Expertiza page, time is being tracked for both. Changes need to be made so that when the student is working on the Expertiza assignment review page time is not tracked for the external links or downloadable files.&lt;br /&gt;
&lt;br /&gt;
; The overall time spent on the review needs to be displayed in a table on the &amp;quot;Review Report&amp;quot; page.&lt;br /&gt;
*The table will look like the following table, but with one modification. The entries in &amp;quot;Time per review in mins&amp;quot; will be clickable. When clicked, they will display a popup that contains detailed information on where the time for the review was spent. For example, if a student spent a total of 22 minutes on the review, it will show that the student spent 5 minutes on the Expertiza review page, 10 minutes looking at external links, and 7 minutes looking at downloadable files. It will display these details in text format as well as graphically using a bar graph. The purpose of choosing this design is two-fold: &lt;br /&gt;
# It will not require the instructor to have to go to a different page every time they want more details on a particular review. Given that the review report page takes a substantial time to load, this is a necessity.&lt;br /&gt;
# It will prevent the table on the review report page from being cluttered by figures and too much data.&lt;br /&gt;
&lt;br /&gt;
[[File:Review report view.png]]&lt;br /&gt;
&lt;br /&gt;
=== Design pattern ===&lt;br /&gt;
'''Strategy:''' In this project, for each review page, we need to deal with different type of links. For online links, such as github repo, youtube link, etc, we use javascript to open a new window detect time when the window is closed. For submitted files, such as txt, jpg, we will open it with  views/response/_submitted_files.html.erb. For other files that need to be download and open locally, we can only make approximation for review time.&lt;br /&gt;
&lt;br /&gt;
=== ''' Flowchart ''' ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Reviewer&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Every time a start time is logged for expertiza/link/file, a new entry will be created in the database.End time will be updated on the last entry present for the same link/file.&lt;br /&gt;
[[File:E1989_Student_flowchart.png | center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Instructor&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Time for individual links will summed and then displayed as bar graph.&lt;br /&gt;
[[File:E1989_Instructor_flowchart.png | center]]&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
1. Created a controller to handle the start/end times of the files viewed by the user. =&amp;gt; '''controllers/submission_viewing_events_controller.rb'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Created a table in database to log start and end time for each link/file. It's schema is described below.&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schema for table submission_viewing_events&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Null&lt;br /&gt;
! Key&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int(11)&lt;br /&gt;
| NO&lt;br /&gt;
| Primary Key&lt;br /&gt;
|-&lt;br /&gt;
| map_id&lt;br /&gt;
| int(11)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| round&lt;br /&gt;
| int(11)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| link&lt;br /&gt;
| varchar(255)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| start_at&lt;br /&gt;
| datetime&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| end_at&lt;br /&gt;
| datetime&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| created_at&lt;br /&gt;
| datetime&lt;br /&gt;
| NO&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updated_at&lt;br /&gt;
| datetime&lt;br /&gt;
| NO&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
3. Added view that will display with pie chart when instructor wants to see time spent on individual links/files.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Pie chart.png]]&lt;br /&gt;
&lt;br /&gt;
=== ''' Files that have been Added or Changed ''' ===&lt;br /&gt;
'''submission_viewing_events_controller.rb&amp;lt;br&amp;gt;'''&lt;br /&gt;
The &amp;lt;tt&amp;gt;record_start_time&amp;lt;/tt&amp;gt; function starts the time for links that have been visited by the user. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def record_start_time&lt;br /&gt;
  param_args = params[:submission_viewing_event]&lt;br /&gt;
  # check if this link is already opened and timed&lt;br /&gt;
  submission_viewing_event_records = SubmissionViewingEvent.where(map_id: param_args[:map_id], round: param_args[:round], link: param_args[:link])&lt;br /&gt;
  # if opened, end these records with current time&lt;br /&gt;
  if submission_viewing_event_records&lt;br /&gt;
    submission_viewing_event_records.each do |time_record|&lt;br /&gt;
	  if time_record.end_at.nil?&lt;br /&gt;
	    # time_record.update_attribute('end_at', start_at)&lt;br /&gt;
	    time_record.destroy&lt;br /&gt;
	  end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  # create new response time record for current link&lt;br /&gt;
  submission_viewing_event = SubmissionViewingEvent.new(submission_viewing_event_params)&lt;br /&gt;
  submission_viewing_event.save&lt;br /&gt;
&lt;br /&gt;
  #if creating start time for expertiza update end times for all other links.&lt;br /&gt;
  if param_args[:link]=='Expertiza Review' &lt;br /&gt;
    params[:submission_viewing_event][:link] = nil&lt;br /&gt;
    params[:submission_viewing_event][:end_at] = params[:submission_viewing_event][:start_at]&lt;br /&gt;
    record_end_time()&lt;br /&gt;
  end&lt;br /&gt;
  render nothing: true&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The &amp;lt;tt&amp;gt;record_end_time&amp;lt;/tt&amp;gt; function records the end time for links that have been visited by the user. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def record_end_time&lt;br /&gt;
  data = params.require(:submission_viewing_event)&lt;br /&gt;
  if data[:link].nil?&lt;br /&gt;
    submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round], end_at: nil).where.not(link: &amp;quot;Expertiza Review&amp;quot;)&lt;br /&gt;
  else&lt;br /&gt;
    submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round], link: data[:link])&lt;br /&gt;
  end&lt;br /&gt;
  submission_viewing_event_records.each do |time_record|&lt;br /&gt;
    if time_record.end_at.nil?&lt;br /&gt;
	time_record.update_attribute('end_at', data[:end_at])&lt;br /&gt;
	# break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  respond_to do |format|&lt;br /&gt;
    format.json { head :no_content }&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The &amp;lt;tt&amp;gt;mark_end_time&amp;lt;/tt&amp;gt; function records the end time for links that have no end times.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def mark_end_time&lt;br /&gt;
  data = params.require(:submission_viewing_event)&lt;br /&gt;
  @link_array = []&lt;br /&gt;
  submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round])&lt;br /&gt;
  submission_viewing_event_records.each do |submissionviewingevent_entry|&lt;br /&gt;
    if submissionviewingevent_entry.end_at.nil?&lt;br /&gt;
	@link_array.push(submissionviewingevent_entry.link)&lt;br /&gt;
	submissionviewingevent_entry.update_attribute('end_at', data[:end_at])&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  respond_to do |format|&lt;br /&gt;
    format.json { render json: @link_array }&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reviewer_details_popup.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
_review_report.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
_review_submissions_time_spent.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
response_times.coffee&amp;lt;br&amp;gt;&lt;br /&gt;
response_times.scss&amp;lt;br&amp;gt;&lt;br /&gt;
response_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
response_times_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
responses_times_helper.rb&amp;lt;br&amp;gt;&lt;br /&gt;
review_mapping_helper.rb&amp;lt;br&amp;gt;&lt;br /&gt;
response_time.rb&amp;lt;br&amp;gt;&lt;br /&gt;
_submitted_files.html.erb&lt;br /&gt;
&lt;br /&gt;
=== ''' Algorithm For Precise Timing Accuracy ''' ===&lt;br /&gt;
Previous implementations attempted to record the time users spent viewing each link, but their solution has multiple problems. The primary problem was that when multiple links were open at the same time (thus overlapping with one another) the times at which they overlap are recorded twice. To fix this, we implemented the following algorithm within \app\views\reports\_review_submissions_time_spent.html.erb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Consider that each link duration (the amount of time that link is being looked at) has a starting and ending edge (see diagram below). These durations are stored in an array durations_to_consider.&lt;br /&gt;
&lt;br /&gt;
Iterate through every link duration in durations_to_consider:&lt;br /&gt;
    If any other link's start and end times both fit within our start and end time:&lt;br /&gt;
        Remove from durations_to_consider&lt;br /&gt;
&lt;br /&gt;
For list of durations_to_consider, add those durations' start and end edges to edge_array.&lt;br /&gt;
&lt;br /&gt;
Ensure that entries in edge_array are sorted from earliest to latest.&lt;br /&gt;
&lt;br /&gt;
Create list duration_sections.&lt;br /&gt;
&lt;br /&gt;
Start at the first edge in edge_array. Go until next edge. Record the time difference as a duration and add time to duration_sections.&lt;br /&gt;
&lt;br /&gt;
    If, after we add an edge that corresponds to the ending edge of a link duration, there are no open start edges (a start edge that belongs to a link, that does not yet have an accompanying end edge that belongs to that link): &lt;br /&gt;
        Count the NEXT start edge as the start edge of the next duration section. This will prevent empty space caused by no link being open at that time from being counted towards the total.&lt;br /&gt;
&lt;br /&gt;
Total up the time for all durations to get the total amount of time spent on links.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The following diagrams are simply meant to help explain the timing algorithm. They are not indicative of the real system. For example, there will never be a time when an Expertiza duration overlaps with a link duration.&lt;br /&gt;
&lt;br /&gt;
The following diagram shows an example of what links could look like prior to our algorithm running:&lt;br /&gt;
[[File:Final_documentation_before_algorithm.PNG | center]]&lt;br /&gt;
&lt;br /&gt;
After our algorithm runs, one can see that the overlapping segments are eliminated. For convenience, each duration_section is highlighted:&lt;br /&gt;
[[File:Final_documentation_after_algorithm.PNG | center]]&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
We have made changes to the controllers/submission_viewing_events_controller.rb and added test cases for the same, which have passed all the test cases. The tests can be executed &amp;lt;tt&amp;gt;rpec spec&amp;lt;/tt&amp;gt; and the results for the files we have modified are shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Randomized with seed 20933&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
Finished in 10.31 seconds (files took 7.85 seconds to load)&lt;br /&gt;
5 examples, 0 failures&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
# Sign in as as a student&lt;br /&gt;
# Review an assignment&lt;br /&gt;
# Go through the review as normal&lt;br /&gt;
## Make sure you open links to github or pull requests&lt;br /&gt;
## Make sure you download and/or view files that are attatched&lt;br /&gt;
# Submit your review when you're done&lt;br /&gt;
# Log out as a student&lt;br /&gt;
# Log in as an instructor&lt;br /&gt;
# Navigate to the review report tab&lt;br /&gt;
# You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http://152.46.18.99:8080/ Deployed Link]&lt;br /&gt;
*[http://www.youtube.com/ YouTube Video] (To be updated.)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=129814</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=129814"/>
		<updated>2019-12-05T20:51:23Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
; The time spent on the Expertiza assignment review page needs to be tracked. &lt;br /&gt;
*This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.&lt;br /&gt;
*To prevent the user from cheating the system by just keeping the review page open without doing work, a timeout feature will be implemented. After 5 minutes of mouse/keyboard inactivity, a popup will be displayed asking if the user is still working. At that point, the time contributed towards the total by the Expertiza page will stop being tracked until the user interacts with the popup to indicate they are still working. This is already implemented in project [https://github.com/expertiza/expertiza/pull/1124 E1791].&lt;br /&gt;
&lt;br /&gt;
; The time spent viewing the external links and downloadable files will need to be made more accurate.&lt;br /&gt;
*Currently, if a student has an external link open as well as the Expertiza page, time is being tracked for both. Changes need to be made so that when the student is working on the Expertiza assignment review page time is not tracked for the external links or downloadable files.&lt;br /&gt;
&lt;br /&gt;
; The overall time spent on the review needs to be displayed in a table on the &amp;quot;Review Report&amp;quot; page.&lt;br /&gt;
*The table will look like the following table, but with one modification. The entries in &amp;quot;Time per review in mins&amp;quot; will be clickable. When clicked, they will display a popup that contains detailed information on where the time for the review was spent. For example, if a student spent a total of 22 minutes on the review, it will show that the student spent 5 minutes on the Expertiza review page, 10 minutes looking at external links, and 7 minutes looking at downloadable files. It will display these details in text format as well as graphically using a bar graph. The purpose of choosing this design is two-fold: &lt;br /&gt;
# It will not require the instructor to have to go to a different page every time they want more details on a particular review. Given that the review report page takes a substantial time to load, this is a necessity.&lt;br /&gt;
# It will prevent the table on the review report page from being cluttered by figures and too much data.&lt;br /&gt;
&lt;br /&gt;
[[File:Review report view.png]]&lt;br /&gt;
&lt;br /&gt;
=== Design pattern ===&lt;br /&gt;
'''Strategy:''' In this project, for each review page, we need to deal with different type of links. For online links, such as github repo, youtube link, etc, we use javascript to open a new window detect time when the window is closed. For submitted files, such as txt, jpg, we will open it with  views/response/_submitted_files.html.erb. For other files that need to be download and open locally, we can only make approximation for review time.&lt;br /&gt;
&lt;br /&gt;
=== ''' Flowchart ''' ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Reviewer&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Every time a start time is logged for expertiza/link/file, a new entry will be created in the database.End time will be updated on the last entry present for the same link/file.&lt;br /&gt;
[[File:E1989_Student_flowchart.png | center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Instructor&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Time for individual links will summed and then displayed as bar graph.&lt;br /&gt;
[[File:E1989_Instructor_flowchart.png | center]]&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
1. Created a controller to handle the start/end times of the files viewed by the user. =&amp;gt; '''controllers/submission_viewing_events_controller.rb'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Created a table in database to log start and end time for each link/file. It's schema is described below.&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Null&lt;br /&gt;
! Key&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int(11)&lt;br /&gt;
| NO&lt;br /&gt;
| Primary Key&lt;br /&gt;
|-&lt;br /&gt;
| map_id&lt;br /&gt;
| int(11)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| round&lt;br /&gt;
| int(11)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| link&lt;br /&gt;
| varchar(255)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| start_at&lt;br /&gt;
| datetime&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| end_at&lt;br /&gt;
| datetime&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| created_at&lt;br /&gt;
| datetime&lt;br /&gt;
| NO&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updated_at&lt;br /&gt;
| datetime&lt;br /&gt;
| NO&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
3. Added view that will display with pie chart when instructor wants to see time spent on individual links/files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ''' Files that have been Added or Changed ''' ===&lt;br /&gt;
'''submission_viewing_events_controller.rb&amp;lt;br&amp;gt;'''&lt;br /&gt;
The &amp;lt;tt&amp;gt;record_start_time&amp;lt;/tt&amp;gt; function starts the time for links that have been visited by the user. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def record_start_time&lt;br /&gt;
  param_args = params[:submission_viewing_event]&lt;br /&gt;
  # check if this link is already opened and timed&lt;br /&gt;
  submission_viewing_event_records = SubmissionViewingEvent.where(map_id: param_args[:map_id], round: param_args[:round], link: param_args[:link])&lt;br /&gt;
  # if opened, end these records with current time&lt;br /&gt;
  if submission_viewing_event_records&lt;br /&gt;
    submission_viewing_event_records.each do |time_record|&lt;br /&gt;
	  if time_record.end_at.nil?&lt;br /&gt;
	    # time_record.update_attribute('end_at', start_at)&lt;br /&gt;
	    time_record.destroy&lt;br /&gt;
	  end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  # create new response time record for current link&lt;br /&gt;
  submission_viewing_event = SubmissionViewingEvent.new(submission_viewing_event_params)&lt;br /&gt;
  submission_viewing_event.save&lt;br /&gt;
&lt;br /&gt;
  #if creating start time for expertiza update end times for all other links.&lt;br /&gt;
  if param_args[:link]=='Expertiza Review' &lt;br /&gt;
    params[:submission_viewing_event][:link] = nil&lt;br /&gt;
    params[:submission_viewing_event][:end_at] = params[:submission_viewing_event][:start_at]&lt;br /&gt;
    record_end_time()&lt;br /&gt;
  end&lt;br /&gt;
  render nothing: true&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The &amp;lt;tt&amp;gt;record_end_time&amp;lt;/tt&amp;gt; function records the end time for links that have been visited by the user. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def record_end_time&lt;br /&gt;
  data = params.require(:submission_viewing_event)&lt;br /&gt;
  if data[:link].nil?&lt;br /&gt;
    submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round], end_at: nil).where.not(link: &amp;quot;Expertiza Review&amp;quot;)&lt;br /&gt;
  else&lt;br /&gt;
    submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round], link: data[:link])&lt;br /&gt;
  end&lt;br /&gt;
  submission_viewing_event_records.each do |time_record|&lt;br /&gt;
    if time_record.end_at.nil?&lt;br /&gt;
	time_record.update_attribute('end_at', data[:end_at])&lt;br /&gt;
	# break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  respond_to do |format|&lt;br /&gt;
    format.json { head :no_content }&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The &amp;lt;tt&amp;gt;mark_end_time&amp;lt;/tt&amp;gt; function records the end time for links that have no end times.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def mark_end_time&lt;br /&gt;
  data = params.require(:submission_viewing_event)&lt;br /&gt;
  @link_array = []&lt;br /&gt;
  submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round])&lt;br /&gt;
  submission_viewing_event_records.each do |submissionviewingevent_entry|&lt;br /&gt;
    if submissionviewingevent_entry.end_at.nil?&lt;br /&gt;
	@link_array.push(submissionviewingevent_entry.link)&lt;br /&gt;
	submissionviewingevent_entry.update_attribute('end_at', data[:end_at])&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  respond_to do |format|&lt;br /&gt;
    format.json { render json: @link_array }&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reviewer_details_popup.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
_review_report.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
_review_submissions_time_spent.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
response_times.coffee&amp;lt;br&amp;gt;&lt;br /&gt;
response_times.scss&amp;lt;br&amp;gt;&lt;br /&gt;
response_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
response_times_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
responses_times_helper.rb&amp;lt;br&amp;gt;&lt;br /&gt;
review_mapping_helper.rb&amp;lt;br&amp;gt;&lt;br /&gt;
response_time.rb&amp;lt;br&amp;gt;&lt;br /&gt;
_submitted_files.html.erb&lt;br /&gt;
&lt;br /&gt;
=== ''' Algorithm For Precise Timing Accuracy ''' ===&lt;br /&gt;
Previous implementations attempted to record the time users spent viewing each link, but their solution has multiple problems. The primary problem was that when multiple links were open at the same time (thus overlapping with one another) the times at which they overlap are recorded twice. To fix this, we implemented the following algorithm within \app\views\reports\_review_submissions_time_spent.html.erb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Consider that each link duration (the amount of time that link is being looked at) has a starting and ending edge (see diagram below). These durations are stored in an array durations_to_consider.&lt;br /&gt;
&lt;br /&gt;
Iterate through every link duration in durations_to_consider:&lt;br /&gt;
    If any other link's start and end times both fit within our start and end time:&lt;br /&gt;
        Remove from durations_to_consider&lt;br /&gt;
&lt;br /&gt;
For list of durations_to_consider, add those durations' start and end edges to edge_array.&lt;br /&gt;
&lt;br /&gt;
Ensure that entries in edge_array are sorted from earliest to latest.&lt;br /&gt;
&lt;br /&gt;
Create list duration_sections.&lt;br /&gt;
&lt;br /&gt;
Start at the first edge in edge_array. Go until next edge. Record the time difference as a duration and add time to duration_sections.&lt;br /&gt;
&lt;br /&gt;
    If, after we add an edge that corresponds to the ending edge of a link duration, there are no open start edges (a start edge that belongs to a link, that does not yet have an accompanying end edge that belongs to that link): &lt;br /&gt;
        Count the NEXT start edge as the start edge of the next duration section. This will prevent empty space caused by no link being open at that time from being counted towards the total.&lt;br /&gt;
&lt;br /&gt;
Total up the time for all durations to get the total amount of time spent on links.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following diagram shows an example of what links could look like prior to our algorithm running:&lt;br /&gt;
[[File:Final_documentation_before_algorithm.PNG | center]]&lt;br /&gt;
&lt;br /&gt;
After our algorithm runs, one can see that the overlapping segments are eliminated. For convenience, each duration_section is highlighted:&lt;br /&gt;
[[File:Final_documentation_after_algorithm.PNG | center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
We have made changes to the controllers/submission_viewing_events_controller.rb and added test cases for the same, which have passed all the test cases. The tests can be executed &amp;lt;tt&amp;gt;rpec spec&amp;lt;/tt&amp;gt; and the results for the files we have modified are shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Randomized with seed 20933&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
Finished in 10.31 seconds (files took 7.85 seconds to load)&lt;br /&gt;
5 examples, 0 failures&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
# Sign in as as a student&lt;br /&gt;
# Review an assignment&lt;br /&gt;
# Go through the review as normal&lt;br /&gt;
## Make sure you open links to github or pull requests&lt;br /&gt;
## Make sure you download and/or view files that are attatched&lt;br /&gt;
# Submit your review when you're done&lt;br /&gt;
# Log out as a student&lt;br /&gt;
# Log in as an instructor&lt;br /&gt;
# Navigate to the review report tab&lt;br /&gt;
# You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Final_documentation_after_algorithm.PNG&amp;diff=129813</id>
		<title>File:Final documentation after algorithm.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Final_documentation_after_algorithm.PNG&amp;diff=129813"/>
		<updated>2019-12-05T20:43:40Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Final_documentation_before_algorithm.PNG&amp;diff=129812</id>
		<title>File:Final documentation before algorithm.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Final_documentation_before_algorithm.PNG&amp;diff=129812"/>
		<updated>2019-12-05T20:43:21Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=129811</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=129811"/>
		<updated>2019-12-05T20:42:51Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
; The time spent on the Expertiza assignment review page needs to be tracked. &lt;br /&gt;
*This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.&lt;br /&gt;
*To prevent the user from cheating the system by just keeping the review page open without doing work, a timeout feature will be implemented. After 5 minutes of mouse/keyboard inactivity, a popup will be displayed asking if the user is still working. At that point, the time contributed towards the total by the Expertiza page will stop being tracked until the user interacts with the popup to indicate they are still working. This is already implemented in project [https://github.com/expertiza/expertiza/pull/1124 E1791].&lt;br /&gt;
&lt;br /&gt;
; The time spent viewing the external links and downloadable files will need to be made more accurate.&lt;br /&gt;
*Currently, if a student has an external link open as well as the Expertiza page, time is being tracked for both. Changes need to be made so that when the student is working on the Expertiza assignment review page time is not tracked for the external links or downloadable files.&lt;br /&gt;
&lt;br /&gt;
; The overall time spent on the review needs to be displayed in a table on the &amp;quot;Review Report&amp;quot; page.&lt;br /&gt;
*The table will look like the following table, but with one modification. The entries in &amp;quot;Time per review in mins&amp;quot; will be clickable. When clicked, they will display a popup that contains detailed information on where the time for the review was spent. For example, if a student spent a total of 22 minutes on the review, it will show that the student spent 5 minutes on the Expertiza review page, 10 minutes looking at external links, and 7 minutes looking at downloadable files. It will display these details in text format as well as graphically using a bar graph. The purpose of choosing this design is two-fold: &lt;br /&gt;
# It will not require the instructor to have to go to a different page every time they want more details on a particular review. Given that the review report page takes a substantial time to load, this is a necessity.&lt;br /&gt;
# It will prevent the table on the review report page from being cluttered by figures and too much data.&lt;br /&gt;
&lt;br /&gt;
[[File:Review report view.png]]&lt;br /&gt;
&lt;br /&gt;
=== Design pattern ===&lt;br /&gt;
'''Strategy:''' In this project, for each review page, we need to deal with different type of links. For online links, such as github repo, youtube link, etc, we use javascript to open a new window detect time when the window is closed. For submitted files, such as txt, jpg, we will open it with  views/response/_submitted_files.html.erb. For other files that need to be download and open locally, we can only make approximation for review time.&lt;br /&gt;
&lt;br /&gt;
=== ''' Flowchart ''' ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Reviewer&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Every time a start time is logged for expertiza/link/file, a new entry will be created in the database.End time will be updated on the last entry present for the same link/file.&lt;br /&gt;
[[File:E1989_Student_flowchart.png | center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Instructor&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Time for individual links will summed and then displayed as bar graph.&lt;br /&gt;
[[File:E1989_Instructor_flowchart.png | center]]&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
1. Created a controller to handle the start/end times of the files viewed by the user. =&amp;gt; '''controllers/submission_viewing_events_controller.rb'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Created a table in database to log start and end time for each link/file. It's schema is described below.&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Null&lt;br /&gt;
! Key&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int(11)&lt;br /&gt;
| NO&lt;br /&gt;
| Primary Key&lt;br /&gt;
|-&lt;br /&gt;
| map_id&lt;br /&gt;
| int(11)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| round&lt;br /&gt;
| int(11)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| link&lt;br /&gt;
| varchar(255)&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| start_at&lt;br /&gt;
| datetime&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| end_at&lt;br /&gt;
| datetime&lt;br /&gt;
| YES&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| created_at&lt;br /&gt;
| datetime&lt;br /&gt;
| NO&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updated_at&lt;br /&gt;
| datetime&lt;br /&gt;
| NO&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
3. Added view that will display with pie chart when instructor wants to see time spent on individual links/files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ''' Files that have been Added or Changed ''' ===&lt;br /&gt;
'''submission_viewing_events_controller.rb&amp;lt;br&amp;gt;'''&lt;br /&gt;
The &amp;lt;tt&amp;gt;record_start_time&amp;lt;/tt&amp;gt; function starts the time for links that have been visited by the user. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def record_start_time&lt;br /&gt;
  param_args = params[:submission_viewing_event]&lt;br /&gt;
  # check if this link is already opened and timed&lt;br /&gt;
  submission_viewing_event_records = SubmissionViewingEvent.where(map_id: param_args[:map_id], round: param_args[:round], link: param_args[:link])&lt;br /&gt;
  # if opened, end these records with current time&lt;br /&gt;
  if submission_viewing_event_records&lt;br /&gt;
    submission_viewing_event_records.each do |time_record|&lt;br /&gt;
	  if time_record.end_at.nil?&lt;br /&gt;
	    # time_record.update_attribute('end_at', start_at)&lt;br /&gt;
	    time_record.destroy&lt;br /&gt;
	  end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  # create new response time record for current link&lt;br /&gt;
  submission_viewing_event = SubmissionViewingEvent.new(submission_viewing_event_params)&lt;br /&gt;
  submission_viewing_event.save&lt;br /&gt;
&lt;br /&gt;
  #if creating start time for expertiza update end times for all other links.&lt;br /&gt;
  if param_args[:link]=='Expertiza Review' &lt;br /&gt;
    params[:submission_viewing_event][:link] = nil&lt;br /&gt;
    params[:submission_viewing_event][:end_at] = params[:submission_viewing_event][:start_at]&lt;br /&gt;
    record_end_time()&lt;br /&gt;
  end&lt;br /&gt;
  render nothing: true&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The &amp;lt;tt&amp;gt;record_end_time&amp;lt;/tt&amp;gt; function records the end time for links that have been visited by the user. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def record_end_time&lt;br /&gt;
  data = params.require(:submission_viewing_event)&lt;br /&gt;
  if data[:link].nil?&lt;br /&gt;
    submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round], end_at: nil).where.not(link: &amp;quot;Expertiza Review&amp;quot;)&lt;br /&gt;
  else&lt;br /&gt;
    submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round], link: data[:link])&lt;br /&gt;
  end&lt;br /&gt;
  submission_viewing_event_records.each do |time_record|&lt;br /&gt;
    if time_record.end_at.nil?&lt;br /&gt;
	time_record.update_attribute('end_at', data[:end_at])&lt;br /&gt;
	# break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  respond_to do |format|&lt;br /&gt;
    format.json { head :no_content }&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The &amp;lt;tt&amp;gt;mark_end_time&amp;lt;/tt&amp;gt; function records the end time for links that have no end times.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def mark_end_time&lt;br /&gt;
  data = params.require(:submission_viewing_event)&lt;br /&gt;
  @link_array = []&lt;br /&gt;
  submission_viewing_event_records = SubmissionViewingEvent.where(map_id: data[:map_id], round: data[:round])&lt;br /&gt;
  submission_viewing_event_records.each do |submissionviewingevent_entry|&lt;br /&gt;
    if submissionviewingevent_entry.end_at.nil?&lt;br /&gt;
	@link_array.push(submissionviewingevent_entry.link)&lt;br /&gt;
	submissionviewingevent_entry.update_attribute('end_at', data[:end_at])&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  respond_to do |format|&lt;br /&gt;
    format.json { render json: @link_array }&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reviewer_details_popup.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
_review_report.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
_review_submissions_time_spent.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
response_times.coffee&amp;lt;br&amp;gt;&lt;br /&gt;
response_times.scss&amp;lt;br&amp;gt;&lt;br /&gt;
response_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
response_times_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
responses_times_helper.rb&amp;lt;br&amp;gt;&lt;br /&gt;
review_mapping_helper.rb&amp;lt;br&amp;gt;&lt;br /&gt;
response_time.rb&amp;lt;br&amp;gt;&lt;br /&gt;
_submitted_files.html.erb&lt;br /&gt;
&lt;br /&gt;
=== ''' Algorithm For Precise Timing Accuracy ''' ===&lt;br /&gt;
Previous implementations attempted to record the time users spent viewing each link, but their solution has multiple problems. The primary problem was that when multiple links were open at the same time (thus overlapping with one another) the times at which they overlap are recorded twice. To fix this, we implemented the following algorithm within \app\views\reports\_review_submissions_time_spent.html.erb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Consider that each link duration (the amount of time that link is being looked at) has a starting and ending edge (see diagram below). These durations are stored in an array durations_to_consider.&lt;br /&gt;
&lt;br /&gt;
Iterate through every link duration in durations_to_consider:&lt;br /&gt;
    If any other link's start and end times both fit within our start and end time:&lt;br /&gt;
        Remove from durations_to_consider&lt;br /&gt;
&lt;br /&gt;
For list of durations_to_consider, add those durations' start and end edges to edge_array.&lt;br /&gt;
&lt;br /&gt;
Ensure that entries in edge_array are sorted from earliest to latest.&lt;br /&gt;
&lt;br /&gt;
Create list duration_sections.&lt;br /&gt;
&lt;br /&gt;
Start at the first edge in edge_array. Go until next edge. Record the time difference as a duration and add time to duration_sections.&lt;br /&gt;
&lt;br /&gt;
    If, after we add an edge that corresponds to the ending edge of a link duration, there are no open start edges (a start edge that belongs to a link, that does not yet have an accompanying end edge that belongs to that link): &lt;br /&gt;
        Count the NEXT start edge as the start edge of the next duration section. This will prevent empty space caused by no link being open at that time from being counted towards the total.&lt;br /&gt;
&lt;br /&gt;
Total up the time for all durations to get the total amount of time spent on links.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
We have made changes to the controllers/submission_viewing_events_controller.rb and added test cases for the same, which have passed all the test cases. The tests can be executed &amp;lt;tt&amp;gt;rpec spec&amp;lt;/tt&amp;gt; and the results for the files we have modified are shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Randomized with seed 20933&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
Finished in 10.31 seconds (files took 7.85 seconds to load)&lt;br /&gt;
5 examples, 0 failures&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
# Sign in as as a student&lt;br /&gt;
# Review an assignment&lt;br /&gt;
# Go through the review as normal&lt;br /&gt;
## Make sure you open links to github or pull requests&lt;br /&gt;
## Make sure you download and/or view files that are attatched&lt;br /&gt;
# Submit your review when you're done&lt;br /&gt;
# Log out as a student&lt;br /&gt;
# Log in as an instructor&lt;br /&gt;
# Navigate to the review report tab&lt;br /&gt;
# You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128225</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128225"/>
		<updated>2019-11-10T21:33:56Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Proposed Solution  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
; The time spent on the Expertiza assignment review page needs to be tracked. &lt;br /&gt;
*This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.&lt;br /&gt;
*To prevent the user from cheating the system by just keeping the review page open without doing work, a timeout feature will be implemented. After 5 minutes of mouse/keyboard inactivity, a popup will be displayed asking if the user is still working. At that point, the time contributed towards the total by the Expertiza page will stop being tracked until the user interacts with the popup to indicate they are still working. This is already implemented in project [https://github.com/expertiza/expertiza/pull/1124 E1791].&lt;br /&gt;
&lt;br /&gt;
; The time spent viewing the external links and downloadable files will need to be made more accurate.&lt;br /&gt;
*Currently, if a student has an external link open as well as the Expertiza page, time is being tracked for both. Changes need to be made so that when the student is working on the Expertiza assignment review page time is not tracked for the external links or downloadable files.&lt;br /&gt;
&lt;br /&gt;
; The overall time spent on the review needs to be displayed in a table on the &amp;quot;Review Report&amp;quot; page.&lt;br /&gt;
*The table will look like the following table, but with one modification. The entries in &amp;quot;Time per review in mins&amp;quot; will be clickable. When clicked, they will display a popup that contains detailed information on where the time for the review was spent. For example, if a student spent a total of 22 minutes on the review, it will show that the student spent 5 minutes on the Expertiza review page, 10 minutes looking at external links, and 7 minutes looking at downloadable files. It will display these details in text format as well as graphically using a bar graph. The purpose of choosing this design is two-fold: &lt;br /&gt;
# It will not require the instructor to have to go to a different page every time they want more details on a particular review. Given that the review report page takes a substantial time to load, this is a necessity.&lt;br /&gt;
# It will prevent the table on the review report page from being cluttered by figures and too much data.&lt;br /&gt;
&lt;br /&gt;
[[File:Review report view.png]]&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
For our project, there are a few distinct tests &amp;quot;suites&amp;quot; that need to be written.&lt;br /&gt;
# We need to write tests that automatically verify the validity of the previous team's solution.&lt;br /&gt;
# We need to write tests that verify that the information is being displayed correctly to the user.&lt;br /&gt;
# We need to write tests to verify that our onFocus/onBlur code is functioning as intended.&lt;br /&gt;
# We need to write tests that verify the pop-up is working correctly.&lt;br /&gt;
&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
In order to implement the aforementioned necessities, we'll be writing automated tests in RSpec to achieve this.&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
# Sign in as as a student&lt;br /&gt;
# Review an assignment&lt;br /&gt;
# Go through the review as normal&lt;br /&gt;
## Make sure you open links to github or pull requests&lt;br /&gt;
## Make sure you download and/or view files that are attatched&lt;br /&gt;
# Submit your review when you're done&lt;br /&gt;
# Log out as a student&lt;br /&gt;
# Log in as an instructor&lt;br /&gt;
# Navigate to the review report tab&lt;br /&gt;
# You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128224</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128224"/>
		<updated>2019-11-10T21:33:06Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Proposed Solution  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
; The time spent on the Expertiza assignment review page needs to be tracked. &lt;br /&gt;
*This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.&lt;br /&gt;
*To prevent the user from cheating the system by just keeping the review page open without doing work, a timeout feature will be implemented. After 5 minutes of mouse/keyboard inactivity, a popup will be displayed asking if the user is still working. At that point, the time contributed towards the total by the Expertiza page will stop being tracked until the user interacts with the popup to indicate they are still working. This is already implemented in project [https://github.com/expertiza/expertiza/pull/1124 E1791].&lt;br /&gt;
&lt;br /&gt;
; The time spent viewing the external links and downloadable files will need to be made more accurate.&lt;br /&gt;
*Currently, if a student has an external link open as well as the Expertiza page, time is being tracked for both. Changes need to be made so that when the student is working on the Expertiza assignment review page time is not tracked for the external links.&lt;br /&gt;
&lt;br /&gt;
; The overall time spent on the review needs to be displayed in a table on the &amp;quot;Review Report&amp;quot; page.&lt;br /&gt;
*The table will look like the following table, but with one modification. The entries in &amp;quot;Time per review in mins&amp;quot; will be clickable. When clicked, they will display a popup that contains detailed information on where the time for the review was spent. For example, if a student spent a total of 22 minutes on the review, it will show that the student spent 5 minutes on the Expertiza review page, 10 minutes looking at external links, and 7 minutes looking at downloadable files. It will display these details in text format as well as graphically using a bar graph. The purpose of choosing this design is two-fold: &lt;br /&gt;
# It will not require the instructor to have to go to a different page every time they want more details on a particular review. Given that the review report page takes a substantial time to load, this is a necessity.&lt;br /&gt;
# It will prevent the table on the review report page from being cluttered by figures and too much data.&lt;br /&gt;
&lt;br /&gt;
[[File:Review report view.png]]&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
For our project, there are a few distinct tests &amp;quot;suites&amp;quot; that need to be written.&lt;br /&gt;
# We need to write tests that automatically verify the validity of the previous team's solution.&lt;br /&gt;
# We need to write tests that verify that the information is being displayed correctly to the user.&lt;br /&gt;
# We need to write tests to verify that our onFocus/onBlur code is functioning as intended.&lt;br /&gt;
# We need to write tests that verify the pop-up is working correctly.&lt;br /&gt;
&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
In order to implement the aforementioned necessities, we'll be writing automated tests in RSpec to achieve this.&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
# Sign in as as a student&lt;br /&gt;
# Review an assignment&lt;br /&gt;
# Go through the review as normal&lt;br /&gt;
## Make sure you open links to github or pull requests&lt;br /&gt;
## Make sure you download and/or view files that are attatched&lt;br /&gt;
# Submit your review when you're done&lt;br /&gt;
# Log out as a student&lt;br /&gt;
# Log in as an instructor&lt;br /&gt;
# Navigate to the review report tab&lt;br /&gt;
# You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128212</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128212"/>
		<updated>2019-11-10T21:18:59Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Proposed Solution  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
; The time spent on the Expertiza assignment review page needs to be tracked. &lt;br /&gt;
*This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.&lt;br /&gt;
*To prevent the user from cheating the system by just keeping the review page open without doing work, a timeout feature will be implemented. After 5 minutes of mouse/keyboard inactivity, a popup will be displayed asking if the user is still working. At that point, the time contributed towards the total by the Expertiza page will stop being tracked until the user interacts with the popup to indicate they are still working. This is already implemented in project [https://github.com/expertiza/expertiza/pull/1124 E1791].&lt;br /&gt;
&lt;br /&gt;
; The overall time spent on the review needs to be displayed in a table on the &amp;quot;Review Report&amp;quot; page.&lt;br /&gt;
*The table will look like the one from&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
For our project, there are a few distinct tests &amp;quot;suites&amp;quot; that need to be written.&lt;br /&gt;
# We need to write tests that automatically verify the validity of the previous team's solution.&lt;br /&gt;
# We need to write tests that verify that the information is being displayed correctly to the user.&lt;br /&gt;
# We need to write tests to verify that our onFocus/onBlur code is functioning as intended.&lt;br /&gt;
# We need to write tests that verify the pop-up is working correctly.&lt;br /&gt;
&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
In order to implement the aforementioned necessities, we'll be writing automated tests in RSpec to achieve this.&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
# Sign in as as a student&lt;br /&gt;
# Review an assignment&lt;br /&gt;
# Go through the review as normal&lt;br /&gt;
## Make sure you open links to github or pull requests&lt;br /&gt;
## Make sure you download and/or view files that are attatched&lt;br /&gt;
# Submit your review when you're done&lt;br /&gt;
# Log out as a student&lt;br /&gt;
# Log in as an instructor&lt;br /&gt;
# Navigate to the review report tab&lt;br /&gt;
# You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128211</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128211"/>
		<updated>2019-11-10T21:18:06Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Proposed Solution  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
; The time spent on the Expertiza assignment review page needs to be tracked. &lt;br /&gt;
*This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.&lt;br /&gt;
*To prevent the user from cheating the system by just keeping the review page open without doing work, a timeout feature will be implemented. After 5 minutes of mouse/keyboard inactivity, a popup will be displayed asking if the user is still working. At that point, the time contributed towards the total by the Expertiza page will stop being tracked until the user interacts with the popup to indicate they are still working. This is already implemented in project [https://github.com/expertiza/expertiza/pull/1124 E1791].&lt;br /&gt;
&lt;br /&gt;
; The overall time spent on the review needs to be displayed in a table on the ____ page.&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
For our project, there are a few distinct tests &amp;quot;suites&amp;quot; that need to be written.&lt;br /&gt;
# We need to write tests that automatically verify the validity of the previous team's solution.&lt;br /&gt;
# We need to write tests that verify that the information is being displayed correctly to the user.&lt;br /&gt;
# We need to write tests to verify that our onFocus/onBlur code is functioning as intended.&lt;br /&gt;
# We need to write tests that verify the pop-up is working correctly.&lt;br /&gt;
&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
In order to implement the aforementioned necessities, we'll be writing automated tests in RSpec to achieve this.&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
# Sign in as as a student&lt;br /&gt;
# Review an assignment&lt;br /&gt;
# Go through the review as normal&lt;br /&gt;
## Make sure you open links to github or pull requests&lt;br /&gt;
## Make sure you download and/or view files that are attatched&lt;br /&gt;
# Submit your review when you're done&lt;br /&gt;
# Log out as a student&lt;br /&gt;
# Log in as an instructor&lt;br /&gt;
# Navigate to the review report tab&lt;br /&gt;
# You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128200</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128200"/>
		<updated>2019-11-10T21:08:57Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Problem Statement  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza assignment review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza review page needs to be tracked.&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
For our project, there are a few distinct tests &amp;quot;suites&amp;quot; that need to be written.&lt;br /&gt;
1. We need to write tests that automatically verify the validity of the previous team's solution.&lt;br /&gt;
2. We need to write tests that verify that the information is being displayed correctly to the user.&lt;br /&gt;
3. We need to write tests to verify that our onFocus/onBlur code is functioning as intended.&lt;br /&gt;
4. We need to write tests that verify the pop-up is working correctly.&lt;br /&gt;
&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
In order to implement the aforementioned necessities, we'll be writing automated tests in RSpec to achieve this.&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
1. Sign in as as a student&lt;br /&gt;
2. Review an assignment&lt;br /&gt;
3. Go through the review as normal&lt;br /&gt;
3a. Make sure you open links to github or pull requests&lt;br /&gt;
3b. Make sure you download and/or view files that are attatched&lt;br /&gt;
4. Submit your review when you're done&lt;br /&gt;
5. Log out as a student&lt;br /&gt;
6. Log in as an instructor&lt;br /&gt;
7. Navigate to the review report tab&lt;br /&gt;
8. You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128198</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128198"/>
		<updated>2019-11-10T21:08:41Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Proposed Solution  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section, the following changes need to be made:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the Expertiza review page needs to be tracked.&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
For our project, there are a few distinct tests &amp;quot;suites&amp;quot; that need to be written.&lt;br /&gt;
1. We need to write tests that automatically verify the validity of the previous team's solution.&lt;br /&gt;
2. We need to write tests that verify that the information is being displayed correctly to the user.&lt;br /&gt;
3. We need to write tests to verify that our onFocus/onBlur code is functioning as intended.&lt;br /&gt;
4. We need to write tests that verify the pop-up is working correctly.&lt;br /&gt;
&lt;br /&gt;
=== Automated Testing Using RSpec ===&lt;br /&gt;
In order to implement the aforementioned necessities, we'll be writing automated tests in RSpec to achieve this.&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
In theory, the coverage of our overall project should increase significantly as we'll be adding tests that account for nearly a thousand lines of new code.&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
We hope to not need any manual UI testing, though if it is needed, it'll look something like this:&lt;br /&gt;
&lt;br /&gt;
Verifying Time is Tracked Correctly:&lt;br /&gt;
1. Sign in as as a student&lt;br /&gt;
2. Review an assignment&lt;br /&gt;
3. Go through the review as normal&lt;br /&gt;
3a. Make sure you open links to github or pull requests&lt;br /&gt;
3b. Make sure you download and/or view files that are attatched&lt;br /&gt;
4. Submit your review when you're done&lt;br /&gt;
5. Log out as a student&lt;br /&gt;
6. Log in as an instructor&lt;br /&gt;
7. Navigate to the review report tab&lt;br /&gt;
8. You should see a new column detailing the time the user spent on the review.&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128193</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128193"/>
		<updated>2019-11-10T21:06:38Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Proposed Solution ''' ==&lt;br /&gt;
After investigating the prior attempts at this task, we have decided it would be best to begin our project by building off of the work done in project [https://github.com/expertiza/expertiza/pull/1124 E1791]. The reason for choosing to build off of this particular project is because they have already put the work into tracking time spent viewing external pages as well as time spent viewing certain types of downloadable files. In order to achieve our goals outlined in the [[#Problem Statement|Problem Statement]] section...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using Rspec ===&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128192</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128192"/>
		<updated>2019-11-10T20:59:52Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Code Changes  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Solutions ''' ==&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
''No code changes yet.''&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using Rspec ===&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128190</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128190"/>
		<updated>2019-11-10T20:58:27Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Problem Statement  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review. Given that previous attempts have been rejected due to UI issues, it is important that this data is displayed cleanly.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Solutions ''' ==&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using Rspec ===&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128188</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128188"/>
		<updated>2019-11-10T20:57:47Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Problem Statement  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to '''track''' and '''display''' how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Solutions ''' ==&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using Rspec ===&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128187</id>
		<title>CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1989._Track_the_time_students_look_at_other_submissions&amp;diff=128187"/>
		<updated>2019-11-10T20:56:41Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: /*  Problem Statement  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''' Introduction ''' ==&lt;br /&gt;
The [http://expertiza.ncsu.edu/ Expertiza] project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted resources is meaningful to instructors to study and improve the teaching experience. 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 (e.g. GitHub code / deployed application), which makes it difficult for the system to track the time that the reviewers spend on the submissions.&lt;br /&gt;
&lt;br /&gt;
=== Current Implementation ===&lt;br /&gt;
So far, Expertiza does not have any such feature. However, three teams have already worked on this in the past but their builds were not merged due to some problems.&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/875 E1705] identified how to track the active time of windows opened from the submitted links. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2016/E1705._Tracking_the_time_students_look_at_the_others%27_submissions Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1124 E1791] provided detailed insights on how they planned to track time taken by a student in viewing a submission and possible edge cases. Further, they also implemented popups and figured out a way to open downloadable files. However, the details are rendered in a not-so-friendly manner and hence it was not merged. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki])&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/1309 E1872] tried to solve this by incorporating the statistics in the review reports page, but their UI made the page cluttered and not friendly. Further, it was hard to identify which statistic belonged to which review, and there were almost no tests. ([http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2018/E1872_Track_Time_Students_Look_At_Other_Submissions Wiki])&lt;br /&gt;
&lt;br /&gt;
== ''' Problem Statement ''' ==&lt;br /&gt;
Knowing how much time a student spends on a review is helpful when determining the quality of the review itself. That being said Expertiza needs to be able to track how much time a student spends on each review. &lt;br /&gt;
&lt;br /&gt;
The time spent on a review is the sum of multiple sources:&lt;br /&gt;
&lt;br /&gt;
# The time spent on the review page itself&lt;br /&gt;
# The time spent looking at external pages linked from the review page&lt;br /&gt;
# The time spent looking at downloadable files submitted by other students&lt;br /&gt;
&lt;br /&gt;
The purpose of this project three-fold:&lt;br /&gt;
&lt;br /&gt;
# Gather the timing data from the sources above.&lt;br /&gt;
# Display the data on the &amp;quot;Review Report&amp;quot; page (views/review_mapping/_review_report.html.erb) to show the time the student spent per review.&lt;br /&gt;
# Write tests that confirm that the above goals are functioning correctly.&lt;br /&gt;
&lt;br /&gt;
== ''' Solutions ''' ==&lt;br /&gt;
&lt;br /&gt;
== ''' Code Changes ''' ==&lt;br /&gt;
&lt;br /&gt;
==  ''' Test Plan ''' ==&lt;br /&gt;
=== Automated Testing Using Rspec ===&lt;br /&gt;
&lt;br /&gt;
=== Coverage ===&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Testing ===&lt;br /&gt;
&lt;br /&gt;
== ''' Our Work ''' ==&lt;br /&gt;
The code we created can be found below.&lt;br /&gt;
*[https://github.com/rohanpillai20/expertiza GitHub Repository]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1607 Pull Request]&lt;br /&gt;
*[http:// Deployed URL] (Currently, Does not Exist)&lt;br /&gt;
&lt;br /&gt;
The project could be run locally by cloning the [https://github.com/rohanpillai20/expertiza GitHub Repository] and then running the following commands sequentially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bundle install&lt;br /&gt;
rake db:create:all&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rails s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''' Team Information ''' ==&lt;br /&gt;
#Dylan Spruill (drspruil)&lt;br /&gt;
#Forrest Devita (fcdevita)&lt;br /&gt;
#Rohan Pillai (rspillai)&lt;br /&gt;
#Shalin Rathi (sjrathi)&lt;br /&gt;
&lt;br /&gt;
Mentor: Akanksha Mohan (amohan7)&lt;br /&gt;
&amp;lt;br&amp;gt;Professor: Dr. Edward F. Gehringer (efg)&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://relishapp.com/rspec RSpec Documentation]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=127343</id>
		<title>CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=127343"/>
		<updated>2019-11-06T19:52:46Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1969 - Investigating Review Management Problems =&lt;br /&gt;
&lt;br /&gt;
== Problem Statement ==&lt;br /&gt;
The purpose of this project was two-fold.&lt;br /&gt;
* First, for [https://github.com/expertiza/expertiza/issues/1321 Issue #1321], we were tasked with investigating whether or not a bug exists that can prevent users from being able to start a review. If the bug exists, we were to fix it; if not, we were to create an automated test suite to provide evidence of the bug's absence.&lt;br /&gt;
* Second, for [https://github.com/expertiza/expertiza/issues/1211 Issue #1211], we were tasked with fixing a bug that prevented reviews from being completed during resubmission periods. Further, test cases had to be written to show that this bug was fixed.&lt;br /&gt;
&lt;br /&gt;
== Issue #1321 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when [https://github.com/expertiza/expertiza/issues/915 Issue #915] was merged. However, in December of 2018, another student reported this issue occurring again.&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:&lt;br /&gt;
&lt;br /&gt;
[[File:review_user_flow_chart.png|centre]]&lt;br /&gt;
&lt;br /&gt;
From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
The purpose of the following test is to iterate over a set of plausible user flow paths that terminate in being able to begin a review. The following flow paths are tested, where each step in the path is either a user clicking in the UI or navigating to a page directly using their browser:&lt;br /&gt;
&lt;br /&gt;
=====Clicking around in UI like normal=====&lt;br /&gt;
# Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_task/view?id=3 -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment review page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us-&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from assignment list to specific assignment page, back to assignment list and then finishing review=====&lt;br /&gt;
# student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; /student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Some corner cases which capture rare scenarios=====&lt;br /&gt;
# The review date is changed when a reviewer is in the review window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These test cases are implemented using the following code. This code is located in /spec/features/peer_review_spec.rb as this file handles the testing of reviews. In an attempt to keep the code DRY, we loop over the test cases contained in a large array. This array consists of smaller arrays, each representing a user flow path. Each test case array also contains smaller arrays which are the steps in this user flow path. The first element in these &amp;quot;step&amp;quot; arrays are the name of the button/link the browser should click/visit. The second element is what should be present on the page once the navigation is complete. This approach not only keeps the code DRY, but makes it trivial to add further test cases in the future, should the need arise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #participant id is 3 for student3&lt;br /&gt;
  normal_test_paths = [&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;] ,[&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;/student_task/list&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;/student_task/list&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;],&lt;br /&gt;
        [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  normal_test_paths.each do |test_path| #loop to generate a test for every entry in test_paths. This will also ensure DB is reset between tests.&lt;br /&gt;
    description_list = []&lt;br /&gt;
    test_path.each do |path_step|&lt;br /&gt;
      description_list.append(path_step[0])&lt;br /&gt;
    end&lt;br /&gt;
    path_description = description_list.join(' -&amp;gt; ')&lt;br /&gt;
    path_description.concat(&amp;quot; -&amp;gt; Request a new submission to review -&amp;gt; Begin&amp;quot;)&lt;br /&gt;
    it &amp;quot;user can take path #{path_description} to begin a review&amp;quot; do&lt;br /&gt;
      login_as(@student3.name)&lt;br /&gt;
      test_path.each do |path_step|&lt;br /&gt;
        where_to_go = path_step[0]&lt;br /&gt;
        expected_text = path_step[1]&lt;br /&gt;
        if where_to_go.include? '/' #if user navigates to page using direct url&lt;br /&gt;
          visit where_to_go&lt;br /&gt;
        else #if user navigates to page by normal means&lt;br /&gt;
          click_on(where_to_go)&lt;br /&gt;
        end&lt;br /&gt;
        expect(page).to have_content expected_text&lt;br /&gt;
      end&lt;br /&gt;
      choose &amp;quot;topic_id&amp;quot;&lt;br /&gt;
      click_on(&amp;quot;Request a new submission to review&amp;quot;)&lt;br /&gt;
      expect(page).to have_content &amp;quot;Begin&amp;quot;&lt;br /&gt;
      click_on(&amp;quot;Begin&amp;quot;)&lt;br /&gt;
      expect(page).to have_content &amp;quot;New Review for ReviewTestAssignment&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is further evidence, in addition to the empirical data produced by the above test, that this bug does not exist - the lack of reproducibility. Over the course of the past two semesters, there have been roughly 130 students participating in the course. Each student is required to do at least 2 reviews for each of the 3 peer reviewed assignments. This totals up to at least 780 reviews. Given that students are able to do up to 4 reviews per assignment for extra credit, this can really be as high as 1,170 reviews. Considering there has only been one report of this bug, with no further evidence that it exists (either given then, or present at this time), it is likely that this bug report was a fabrication.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
When run in a local development environment, all tests within the suite pass. Further, when the pull request was put in, all tests run by Travis CI pass.&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
Given that this bug was not able to be reproduced by any of our testing, including a suite of automated tests, it is our opinion that this bug does not exist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issue #1211 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
[https://github.com/expertiza/expertiza/issues/1211 Issue #1211:] Review is not possible during resubmission period, even when explicitly enabled. Essentially, when a review period overlaps with the second submission period, the first review period is not available (the submission period takes priority).&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
As seen in the issue itself, there was a previous fix for this error but it was never implemented due to it &amp;quot;failing tests.&amp;quot; Upon investigating the &amp;quot;failed tests&amp;quot; documented we found that the pull request just failed to merge, and therefore the Travis CI tests counted it as a failure. We added Varun's fix back and made a pull request to see how it failed specifically, and the Travis CI result showed that [https://travis-ci.org/expertiza/expertiza/builds/602456904?utm_medium=notification&amp;amp;utm_source=github_status it was failing in the features folder due to a NoMethodError]. &lt;br /&gt;
&lt;br /&gt;
After arriving at this initial conclusion, I began trying to figure out how to fix this error. My first assumption was that since I ran into no issues locally running the test bench, that it was perhaps the order it was tested in. I opened [https://github.com/nopejpg/expertiza/issues/16 Issue #16] in our forked repo to run a bisect command, to see what the shortest path to failure was. What I found was the shortest path to failure. I then opened [https://github.com/nopejpg/expertiza/issues/17 Issue #17], investigating that failure path. What I hadn't realized was that the seed Travis CI used did not fail the test at all locally, but rather failed two separate tests (that never fail on Travis CI). From here on out I began running a variety of rspec tests to figure out if it was just the seed, if it was an test-ordering issue, or if it was the test itself.&lt;br /&gt;
&lt;br /&gt;
Eventually, I ran out of paths and after contacting my mentor and Dr. Gehringer, I decided to try and re-write the tests that failed. After inspecting the test code that was failing I realized that there was really no way it could be the tests failing due to old and faulty code. What it looked like was that the children_node_ng somehow received an empty child_node. After further investigation, it appeared to be related to Varun's change, which I then discarded and began working from scratch.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Similarly to Varun's fix, my fix was in the student_task_helper.rb file, specifically for the check_reviewable_topics method.&lt;br /&gt;
&lt;br /&gt;
The line of code at fault can be seen below. As we can see, a topic can only be reviewed if it is not within a &amp;quot;submission&amp;quot; stage, which works fine when no stages overlap. However, as soon as the review stage overlaps with the submission stage, you can no longer perform a review.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
return true if !assignment.topics? and assignment.get_current_stage != &amp;quot;submission&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fix is fairly simple, and I was over-complicating it for the majority of this project. You can simply just check to make sure that the current stage is a review stage, rather than a submission stage. Now it no longer matters if it is within a submission window or not, as long as it is within the review stage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
return true if !assignment.topics? and assignment.get_current_stage == &amp;quot;review&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
Due to spending so much time investigating false paths, I didn't end up having much time to write exhaustive tests to establish this change. In theory, the way the review_assignment_spec.rb is written should already check this functionality to a degree. However, I added one more test within this spec file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  it &amp;quot;is able to reivew when submissions overlap with review window&amp;quot; do&lt;br /&gt;
    create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;submission&amp;quot;).first, due_at: DateTime.now.in_time_zone + 1.day)&lt;br /&gt;
    create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;review&amp;quot;).first, due_at: DateTime.now.in_time_zone + 4.day)&lt;br /&gt;
    submit_to_topic&lt;br /&gt;
    user = User.find_by(name: &amp;quot;student2065&amp;quot;)&lt;br /&gt;
    stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    visit '/sign_up_sheet/sign_up?id=1&amp;amp;topic_id=1'&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    click_link &amp;quot;TestAssignment&amp;quot;&lt;br /&gt;
    click_link &amp;quot;Others' work&amp;quot;&lt;br /&gt;
    find(:css, &amp;quot;#i_dont_care&amp;quot;).set(true)&lt;br /&gt;
    click_button &amp;quot;Request a new submission to review&amp;quot;&lt;br /&gt;
    expect(page).to have_content &amp;quot;No previous versions available&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The theory behind this test is that currently, all review spec tests had the same deadlines for submission and review, so I staggered them similarly to how they were staggered in the issue documentation to ensure that the fix had been met. I also tested this manually on my local system, ensuring that I could review a test if I impersonated a user.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
When run in a local development environment, all tests within the suite pass. Further, when the pull request was put in, all tests run by Travis CI pass.&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
In conclusion, from what I can see locally, this bug has been fixed. As I quickly found out dealing with Travis CI errors, its possible that this will somehow still not work correctly when pushed to the beta branch, but I can conclusively say that it should.&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=126651</id>
		<title>CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=126651"/>
		<updated>2019-10-29T12:09:54Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1969 - Investigating inabilities to review =&lt;br /&gt;
&lt;br /&gt;
== Issue #1321 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when [https://github.com/expertiza/expertiza/issues/1321 Issue #915] was merged. However, in December of 2018, another student reported this issue occurring again.&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:&lt;br /&gt;
&lt;br /&gt;
[[File:review_user_flow_chart.png|centre]]&lt;br /&gt;
&lt;br /&gt;
From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
The purpose of the following test is to iterate over a set of plausible user flow paths that terminate in being able to begin a review. The following flow paths are tested, where each step in the path is either a user clicking in the UI or navigating to a page directly using their browser:&lt;br /&gt;
&lt;br /&gt;
=====Clicking around in UI like normal=====&lt;br /&gt;
# Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_task/view?id=3 -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment review page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us-&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from assignment list to specific assignment page, back to assignment list and then finishing review=====&lt;br /&gt;
# student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; /student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Some corner cases which capture rare scenarios=====&lt;br /&gt;
# The review date is changed when a reviewer is in the review window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These test cases are implemented using the following code. This code is located in /spec/features/peer_review_spec.rb as this file handles the testing of reviews. In an attempt to keep the code DRY, we loop over the test cases contained in a large array. This array consists of smaller arrays, each representing a user flow path. Each test case array also contains smaller arrays which are the steps in this user flow path. The first element in these &amp;quot;step&amp;quot; arrays are the name of the button/link the browser should click/visit. The second element is what should be present on the page once the navigation is complete. This approach not only keeps the code DRY, but makes it trivial to add further test cases in the future, should the need arise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #participant id is 3 for student3&lt;br /&gt;
  normal_test_paths = [&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;] ,[&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;/student_task/list&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;/student_task/list&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;],&lt;br /&gt;
        [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  normal_test_paths.each do |test_path| #loop to generate a test for every entry in test_paths. This will also ensure DB is reset between tests.&lt;br /&gt;
    description_list = []&lt;br /&gt;
    test_path.each do |path_step|&lt;br /&gt;
      description_list.append(path_step[0])&lt;br /&gt;
    end&lt;br /&gt;
    path_description = description_list.join(' -&amp;gt; ')&lt;br /&gt;
    path_description.concat(&amp;quot; -&amp;gt; Request a new submission to review -&amp;gt; Begin&amp;quot;)&lt;br /&gt;
    it &amp;quot;user can take path #{path_description} to begin a review&amp;quot; do&lt;br /&gt;
      login_as(@student3.name)&lt;br /&gt;
      test_path.each do |path_step|&lt;br /&gt;
        where_to_go = path_step[0]&lt;br /&gt;
        expected_text = path_step[1]&lt;br /&gt;
        if where_to_go.include? '/' #if user navigates to page using direct url&lt;br /&gt;
          visit where_to_go&lt;br /&gt;
        else #if user navigates to page by normal means&lt;br /&gt;
          click_on(where_to_go)&lt;br /&gt;
        end&lt;br /&gt;
        expect(page).to have_content expected_text&lt;br /&gt;
      end&lt;br /&gt;
      choose &amp;quot;topic_id&amp;quot;&lt;br /&gt;
      click_on(&amp;quot;Request a new submission to review&amp;quot;)&lt;br /&gt;
      expect(page).to have_content &amp;quot;Begin&amp;quot;&lt;br /&gt;
      click_on(&amp;quot;Begin&amp;quot;)&lt;br /&gt;
      expect(page).to have_content &amp;quot;New Review for ReviewTestAssignment&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is further evidence, in addition to the empirical data produced by the above test, that this bug does not exist - the lack of reproducibility. Over the course of the past two semesters, there have been roughly 130 students participating in the course. Each student is required to do at least 2 reviews for each of the 3 peer reviewed assignments. This totals up to at least 780 reviews. Given that students are able to do up to 4 reviews per assignment for extra credit, this can really be as high as 1,170 reviews. Considering there has only been one report of this bug, with no further evidence that it exists (either given then, or present at this time), it is likely that this bug report was a fabrication.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
When run in a local development environment, all tests within the suite pass. Further, when the pull request was put in, all tests run by Travis CI pass.&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
Given that this bug was not able to be reproduced by any of our testing, including a suite of automated tests, it is our opinion that this bug does not exist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issue #1211 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
[https://github.com/expertiza/expertiza/issues/1211 Issue #1211:] Review is not possible during resubmission period, even when explicitly enabled. Essentially, when a review period overlaps with the second submission period, the first review period is not available (the submission period takes priority).&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
As seen in the issue itself, there was a previous fix for this error but it was never implemented due to it &amp;quot;failing tests.&amp;quot; Upon investigating the &amp;quot;failed tests&amp;quot; documented we found that the pull request just failed to merge, and therefore the Travis CI tests counted it as a failure. We added Varun's fix back and made a pull request to see how it failed specifically, and the Travis CI result showed that [https://travis-ci.org/expertiza/expertiza/builds/602456904?utm_medium=notification&amp;amp;utm_source=github_status it was failing in the features folder due to a NoMethodError]. &lt;br /&gt;
&lt;br /&gt;
After arriving at this initial conclusion, I began trying to figure out how to fix this error. My first assumption was that since I ran into no issues locally running the test bench, that it was perhaps the order it was tested in. I opened [https://github.com/nopejpg/expertiza/issues/16 Issue #16] in our forked repo to run a bisect command, to see what the shortest path to failure was. What I found was the shortest path to failure. I then opened [https://github.com/nopejpg/expertiza/issues/17 Issue #17], investigating that failure path. What I hadn't realized was that the seed Travis CI used did not fail the test at all locally, but rather failed two separate tests (that never fail on Travis CI). From here on out I began running a variety of rspec tests to figure out if it was just the seed, if it was an test-ordering issue, or if it was the test itself.&lt;br /&gt;
&lt;br /&gt;
Eventually, I ran out of paths and after contacting my mentor and Dr. Gehringer, I decided to try and re-write the tests that failed. After inspecting the test code that was failing I realized that there was really no way it could be the tests failing due to old and faulty code. What it looked like was that the children_node_ng somehow received an empty child_node. After further investigation, it appeared to be related to Varun's change, which I then discarded and began working from scratch.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Similarly to Varun's fix, my fix was in the student_task_helper.rb file, specifically for the check_reviewable_topics method.&lt;br /&gt;
&lt;br /&gt;
The line of code at fault can be seen below. As we can see, a topic can only be reviewed if it is not within a &amp;quot;submission&amp;quot; stage, which works fine when no stages overlap. However, as soon as the review stage overlaps with the submission stage, you can no longer perform a review.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
return true if !assignment.topics? and assignment.get_current_stage != &amp;quot;submission&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fix is fairly simple, and I was over-complicating it for the majority of this project. You can simply just check to make sure that the current stage is a review stage, rather than a submission stage. Now it no longer matters if it is within a submission window or not, as long as it is within the review stage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
return true if !assignment.topics? and assignment.get_current_stage == &amp;quot;review&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Due to spending so much time investigating false paths, I didn't end up having much time to write exhaustive tests to establish this change. In theory, the way the review_assignment_spec.rb is written should already check this functionality to a degree. However, I added one more test within this spec file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  it &amp;quot;is able to reivew when submissions overlap with review window&amp;quot; do&lt;br /&gt;
    create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;submission&amp;quot;).first, due_at: DateTime.now.in_time_zone + 1.day)&lt;br /&gt;
    create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;review&amp;quot;).first, due_at: DateTime.now.in_time_zone + 4.day)&lt;br /&gt;
    submit_to_topic&lt;br /&gt;
    user = User.find_by(name: &amp;quot;student2065&amp;quot;)&lt;br /&gt;
    stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    visit '/sign_up_sheet/sign_up?id=1&amp;amp;topic_id=1'&lt;br /&gt;
    visit '/student_task/list'&lt;br /&gt;
    click_link &amp;quot;TestAssignment&amp;quot;&lt;br /&gt;
    click_link &amp;quot;Others' work&amp;quot;&lt;br /&gt;
    find(:css, &amp;quot;#i_dont_care&amp;quot;).set(true)&lt;br /&gt;
    click_button &amp;quot;Request a new submission to review&amp;quot;&lt;br /&gt;
    expect(page).to have_content &amp;quot;No previous versions available&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The theory behind this test is that currently, all review spec tests had the same deadlines for submission and review, so I staggered them similarly to how they were staggered in the issue documentation to ensure that the fix had been met. I also tested this manually on my local system, ensuring that I could review a test if I impersonated a user.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
When run in a local development environment, all tests within the suite pass. Further, when the pull request was put in, all tests run by Travis CI pass.&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
In conclusion, from what I can see locally, this bug has been fixed. As I quickly found out dealing with Travis CI errors, its possible that this will somehow still not work correctly when pushed to the beta branch, but I can conclusively say that it should.&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125955</id>
		<title>CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125955"/>
		<updated>2019-10-28T20:12:03Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1969 - Investigating inabilities to review =&lt;br /&gt;
&lt;br /&gt;
== Issue #1321 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when [https://github.com/expertiza/expertiza/issues/1321 Issue #915] was merged. However, in December of 2018, another student reported this issue occurring again.&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:&lt;br /&gt;
&lt;br /&gt;
[[File:review_user_flow_chart.png|centre]]&lt;br /&gt;
&lt;br /&gt;
From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
The purpose of the following test is to iterate over a set of plausible user flow paths that terminate in being able to begin a review. The following flow paths are tested, where each step in the path is either a user clicking in the UI or navigating to a page directly using their browser:&lt;br /&gt;
&lt;br /&gt;
=====Clicking around in UI like normal=====&lt;br /&gt;
# Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_task/view?id=3 -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment review page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us-&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from assignment list to specific assignment page, back to assignment list and then finishing review=====&lt;br /&gt;
# student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; /student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These test cases are implemented using the following code. This code is located in /spec/features/peer_review_spec.rb as this file handles the testing of reviews. In an attempt to keep the code DRY, we loop over the test cases contained in a large array. This array consists of smaller arrays, each representing a user flow path. Each test case array also contains smaller arrays which are the steps in this user flow path. The first element in these &amp;quot;step&amp;quot; arrays are the name of the button/link the browser should click/visit. The second element is what should be present on the page once the navigation is complete. This approach not only keeps the code DRY, but makes it trivial to add further test cases in the future, should the need arise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #participant id is 3 for student3&lt;br /&gt;
  normal_test_paths = [&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;] ,[&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;/student_task/view?id=3&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Student_task&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Contact Us&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Home&amp;quot;,&amp;quot;Welcome!&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;Profile&amp;quot;,&amp;quot;User Profile Information&amp;quot;], [&amp;quot;/student_review/list?id=3&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
    [[&amp;quot;/student_task/list&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;], [&amp;quot;/student_task/list&amp;quot;,&amp;quot;Select an assignment&amp;quot;], [&amp;quot;ReviewTestAssignment&amp;quot;,&amp;quot;Others' work&amp;quot;],&lt;br /&gt;
        [&amp;quot;Others' work&amp;quot;,'Reviews for &amp;quot;ReviewTestAssignment&amp;quot;']],&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  normal_test_paths.each do |test_path| #loop to generate a test for every entry in test_paths. This will also ensure DB is reset between tests.&lt;br /&gt;
    description_list = []&lt;br /&gt;
    test_path.each do |path_step|&lt;br /&gt;
      description_list.append(path_step[0])&lt;br /&gt;
    end&lt;br /&gt;
    path_description = description_list.join(' -&amp;gt; ')&lt;br /&gt;
    path_description.concat(&amp;quot; -&amp;gt; Request a new submission to review -&amp;gt; Begin&amp;quot;)&lt;br /&gt;
    it &amp;quot;user can take path #{path_description} to begin a review&amp;quot; do&lt;br /&gt;
      login_as(@student3.name)&lt;br /&gt;
      test_path.each do |path_step|&lt;br /&gt;
        where_to_go = path_step[0]&lt;br /&gt;
        expected_text = path_step[1]&lt;br /&gt;
        if where_to_go.include? '/' #if user navigates to page using direct url&lt;br /&gt;
          visit where_to_go&lt;br /&gt;
        else #if user navigates to page by normal means&lt;br /&gt;
          click_on(where_to_go)&lt;br /&gt;
        end&lt;br /&gt;
        expect(page).to have_content expected_text&lt;br /&gt;
      end&lt;br /&gt;
      choose &amp;quot;topic_id&amp;quot;&lt;br /&gt;
      click_on(&amp;quot;Request a new submission to review&amp;quot;)&lt;br /&gt;
      expect(page).to have_content &amp;quot;Begin&amp;quot;&lt;br /&gt;
      click_on(&amp;quot;Begin&amp;quot;)&lt;br /&gt;
      expect(page).to have_content &amp;quot;New Review for ReviewTestAssignment&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is further evidence, in addition to the empirical data produced by the above test, that this bug does not exist - the lack of reproducibility. Over the course of the past two semesters, there have been roughly 130 students participating in the course. Each student is required to do at least 2 reviews for each of the 3 peer reviewed assignments. This totals up to at least 780 reviews. Given that students are able to do up to 4 reviews per assignment for extra credit, this can really be as high as 1,170 reviews. Considering there has only been one report of this bug, with no further evidence that it exists (either given then, or present at this time), it is likely that this bug report was a fabrication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
When run in a local development environment, all tests within the suite pass. Further, when the pull request was put in, all tests run by Travis CI pass.&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
Given that this bug was not able to be reproduced by any of our testing, including a suite of automated tests, it is our opinion that this bug does not exist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issue #1211 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
&lt;br /&gt;
=== Solution (if changes were needed. Dylan?) ===&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125856</id>
		<title>CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125856"/>
		<updated>2019-10-28T14:43:21Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1969 - Investigating inabilities to review =&lt;br /&gt;
&lt;br /&gt;
== Issue #1321 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when [https://github.com/expertiza/expertiza/issues/1321 Issue #915] was merged. However, in December of 2018, another student reported this issue occurring again.&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:&lt;br /&gt;
&lt;br /&gt;
[[File:review_user_flow_chart.png|centre]]&lt;br /&gt;
&lt;br /&gt;
From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
The purpose of the following test is to iterate over a set of plausible user flow paths that terminate in being able to begin a review. The following flow paths are tested, where each step in the path is either a user clicking in the UI or navigating to a page directly using their browser:&lt;br /&gt;
&lt;br /&gt;
=====Clicking around in UI like normal=====&lt;br /&gt;
# Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_task/view?id=3 -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment review page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us-&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from assignment list to specific assignment page, back to assignment list and then finishing review=====&lt;br /&gt;
# student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; /student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These test cases are implemented using the following code. In an attempt to keep the code DRY, we loop over the test cases contained in a large array. This array consists of smaller arrays, each representing a user flow path. Each test case array also contains smaller arrays which are the steps in this user flow path. The first element in these &amp;quot;step&amp;quot; arrays are the name of the button/link the browser should click/visit. The second element is what should be present on the page once the navigation is complete. This approach not only keeps the code DRY, but makes it trivial to add further test cases in the future, should the need arise.&lt;br /&gt;
&lt;br /&gt;
[[File:User_flow_test_picture.PNG|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is further evidence, in addition to the empirical data produced by the above test, that this bug does not exist - the lack of reproducibility. Over the course of the past two semesters, there have been roughly 130 students participating in the course. Each student is required to do at least 2 reviews for each of the 3 peer reviewed assignments. This totals up to at least 780 reviews. Given that students are able to do up to 4 reviews per assignment for extra credit, this can really be as high as 1,170 reviews. Considering there has only been one report of this bug, with no further evidence that it exists (either given then, or present at this time), it is likely that this bug report was a fabrication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
When run in a local development environment, all tests within the suite pass. Further, when the pull request was put in, all tests run by Travis CI pass.&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
Given that this bug was not able to be reproduced by any of our testing, including a suite of automated tests, it is our opinion that this bug does not exist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issue #1211 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
&lt;br /&gt;
=== Solution (if changes were needed. Dylan?) ===&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:User_flow_test_picture.PNG&amp;diff=125852</id>
		<title>File:User flow test picture.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:User_flow_test_picture.PNG&amp;diff=125852"/>
		<updated>2019-10-28T14:31:22Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125851</id>
		<title>CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125851"/>
		<updated>2019-10-28T14:31:13Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1969 - Investigating inabilities to review =&lt;br /&gt;
&lt;br /&gt;
== Issue #1321 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when [https://github.com/expertiza/expertiza/issues/1321 Issue #915] was merged. However, in December of 2018, another student reported this issue occurring again.&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:&lt;br /&gt;
&lt;br /&gt;
[[File:review_user_flow_chart.png|centre]]&lt;br /&gt;
&lt;br /&gt;
From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
The purpose of the following test is to iterate over a set of plausible user flow paths that terminate in being able to begin a review. The following flow paths are tested, where each step in the path is either a user clicking in the UI or navigating to a page directly using their browser:&lt;br /&gt;
&lt;br /&gt;
=====Clicking around in UI like normal=====&lt;br /&gt;
# Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; Assignments -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_task/view?id=3 -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_task/view?id=3 -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from different pages directly to the specific assignment review page using address bar=====&lt;br /&gt;
# Assignments -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Contact Us-&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Home -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
# Profile -&amp;gt; /student_review/list?id=3 -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
=====Going from assignment list to specific assignment page, back to assignment list and then finishing review=====&lt;br /&gt;
# student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; /student_task/list -&amp;gt; ReviewTestAssignment -&amp;gt; Others' work -&amp;gt; Request a new submission to review -&amp;gt; Begin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These test cases are implemented using the following code. In an attempt to keep the code DRY, we loop over the test cases contained in a large array. This array consists of smaller arrays, each representing a user flow path. Each test case array also contains smaller arrays which are the steps in this user flow path. The first element in these &amp;quot;step&amp;quot; arrays are the name of the button/link the browser should click/visit. The second element is what should be present on the page once the navigation is complete.&lt;br /&gt;
&lt;br /&gt;
[[user_flow_test_picture.png|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issue #1211 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
&lt;br /&gt;
=== Solution (if changes were needed. Dylan?) ===&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125848</id>
		<title>CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125848"/>
		<updated>2019-10-28T13:52:29Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1969 - Investigating inabilities to review =&lt;br /&gt;
&lt;br /&gt;
== Issue #1321 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when [https://github.com/expertiza/expertiza/issues/1321 Issue #915] was merged. However, in December of 2018, another student reported this issue occurring again.&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:&lt;br /&gt;
&lt;br /&gt;
[[File:review_user_flow_chart.png|centre]]&lt;br /&gt;
&lt;br /&gt;
From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issue #1211 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
&lt;br /&gt;
=== Solution (if changes were needed. Dylan?) ===&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_user_flow_chart.png&amp;diff=125847</id>
		<title>File:Review user flow chart.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Review_user_flow_chart.png&amp;diff=125847"/>
		<updated>2019-10-28T13:50:45Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: This is the user flow chart for plausible paths to start a review&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the user flow chart for plausible paths to start a review&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125846</id>
		<title>CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1969._Fixes_for_reviews_not_being_available&amp;diff=125846"/>
		<updated>2019-10-28T13:41:08Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: Created page with &amp;quot;= E1969 - Investigating inabilities to review =  == Issue #1321 ==  === Reported Problem === It was reported by a student that an assignment was not able to be reviewed even thou...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= E1969 - Investigating inabilities to review =&lt;br /&gt;
&lt;br /&gt;
== Issue #1321 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when [https://github.com/expertiza/expertiza/issues/1321 Issue #915] was merged. However, in December of 2018, another student reported this issue occurring again.&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:&lt;br /&gt;
&lt;br /&gt;
[[File:review_user_flow_chart.png]]&lt;br /&gt;
&lt;br /&gt;
From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issue #1211 ==&lt;br /&gt;
&lt;br /&gt;
=== Reported Problem ===&lt;br /&gt;
&lt;br /&gt;
=== Investigation Approach ===&lt;br /&gt;
&lt;br /&gt;
=== Solution (if changes were needed. Dylan?) ===&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019&amp;diff=125845</id>
		<title>CSC/ECE 517 Fall 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019&amp;diff=125845"/>
		<updated>2019-10-28T13:19:47Z</updated>

		<summary type="html">&lt;p&gt;Fcdevita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CSC/ECE 517 Fall 2019 - Project E1947. Refactor quiz_questionnaire_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - Project E1965. Review report should link to the usual view for reviews]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1972. OSS project J. Skellington: Accessing Assignment Rubrics]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1961. Email notification to reviewers and instructors]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1971. OSS project Finklestein: Instructors &amp;amp; Institutions]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1953. Tagging report for student]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1955.Write  unit tests for student_task.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1954. Auto-generate submission directory names based on assignment names]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1958. Two issues related to assignment management]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1948. Refactor review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1968. Fixes for adding members to teams]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1951. Remove multiple topics at a time]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1957. Time travel Not Allowed..!!! Restrict TAs’ ability to change their own grade + limit file-size upload]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1963. Changing assignment participant role]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1941. Issues related to topic deadlines]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1966. Tabbed_reviews partial file refactor for displaying the alternate view of reviews]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2019 - E1962. Email notification upon account creation]]&lt;/div&gt;</summary>
		<author><name>Fcdevita</name></author>
	</entry>
</feed>