CSC/ECE 517 Fall 2019 - E1989. Track the time students look at other submissions: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 42: Line 42:
=== ''' User Flowchart ''' ===
=== ''' User Flowchart ''' ===
Instructor
Instructor
[[File:instructor_flowchart.png200px|thumb|left|alt text]]
[[File:instructor_flowchart.png | 200px|thumb|left|alt text]]
Reviewer
Reviewer
[[File:student_flowchart.png]]
[[File:student_flowchart.png]]

Revision as of 05:52, 11 November 2019

Introduction

The Expertiza project takes advantage of peer-review among students to allow them to learn from each other. Tracking the time that a student spends on each submitted 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.

Current Implementation

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.

  1. E1705 identified how to track the active time of windows opened from the submitted links. (Wiki)
  2. 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. (Wiki)
  3. 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. (Wiki)

Problem Statement

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.

The time spent on a review is the sum of multiple sources:

  1. The time spent on the Expertiza assignment review page itself
  2. The time spent looking at external pages linked from the review page
  3. The time spent looking at downloadable files submitted by other students

The purpose of this project three-fold:

  1. Gather the timing data from the sources above.
  2. Display the data on the "Review Report" 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.
  3. Write tests that confirm that the above goals are functioning correctly.

Proposed Solution

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 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 section, the following changes need to be made:

The time spent on the Expertiza assignment review page needs to be tracked.
  • This will be done by using onFocus and onBlur mouse events to tell when a user is actively working on the page.
  • 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 E1791.
The time spent viewing the external links and downloadable files will need to be made more accurate.
  • 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.
The overall time spent on the review needs to be displayed in a table on the "Review Report" page.
  • The table will look like the following table, but with one modification. The entries in "Time per review in mins" 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:
  1. 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.
  2. It will prevent the table on the review report page from being cluttered by figures and too much data.

User Flowchart

Instructor

alt text

Reviewer

Code Changes

No code changes yet.

Test Plan

For our project, there are a few distinct tests "suites" that need to be written.

  1. We need to write tests that automatically verify the validity of the previous team's solution.
  2. We need to write tests that verify that the information is being displayed correctly to the user.
  3. We need to write tests to verify that our onFocus/onBlur code is functioning as intended.
  4. We need to write tests that verify the pop-up is working correctly.

Automated Testing Using RSpec

In order to implement the aforementioned necessities, we'll be writing automated tests in RSpec to achieve this.

Coverage

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.

Manual UI Testing

We hope to not need any manual UI testing, though if it is needed, it'll look something like this:

Verifying Time is Tracked Correctly:

  1. Sign in as as a student
  2. Review an assignment
  3. Go through the review as normal
    1. Make sure you open links to github or pull requests
    2. Make sure you download and/or view files that are attatched
  4. Submit your review when you're done
  5. Log out as a student
  6. Log in as an instructor
  7. Navigate to the review report tab
  8. You should see a new column detailing the time the user spent on the review.

Our Work

The code we created can be found below.

The project could be run locally by cloning the GitHub Repository and then running the following commands sequentially.

bundle install
rake db:create:all
rake db:migrate
rails s

Team Information

  1. Dylan Spruill (drspruil)
  2. Forrest Devita (fcdevita)
  3. Rohan Pillai (rspillai)
  4. Shalin Rathi (sjrathi)

Mentor: Akanksha Mohan (amohan7)
Professor: Dr. Edward F. Gehringer (efg)

References

  1. Expertiza on GitHub
  2. RSpec Documentation