CSE/ECE 517 Spring 2021 - E2105. Track the time students look at other submissions: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 12: Line 12:
Current in Expertiza, students complete peer review questionnaires during the many rounds of an assignment. This is a great way to gather information about submissions and complete lots of testing while also exposing the reviewing student to practices and skills used in industry.
Current in Expertiza, students complete peer review questionnaires during the many rounds of an assignment. This is a great way to gather information about submissions and complete lots of testing while also exposing the reviewing student to practices and skills used in industry.


The instructor can view these reviews on the "Review Reports" screen. This can be found by getting the "Management" dropdown -> Assignments to list all assignments for that instructor. On the far right of each of these rows, one will see multiple buttons for possible actions, select "Review Report" which looks like this [[File:Flag of ExpertizaReviewReport.svg|frameless|x20px|border]]. Once the page has loaded clicking the "View" button while "Review Reports" is selected in the dropdown. This will then list out students who have completed reviews, the teams they reviewed, the amount of written text they submitted in comments, as well as other metrics.
The instructor can view these reviews on the "Review Reports" screen. This can be found by getting the "Management" dropdown -> Assignments to list all assignments for that instructor. On the far right of each of these rows, one will see multiple buttons for possible actions, select "Review Report"[[File:ExpertizaReviewReport.png|frameless|x20px|border]]. Once the page has loaded, clicking the "View" button while "Review Reports" is selected in the dropdown will open the reports. A list of students who have completed reviews, the teams they reviewed, the amount of written text they submitted in comments, as well as other metrics will be displayed.
 
The issue with this system is that there is no metric currently for how long a user spends on reviews.
 
Because this project involves logging data real-time, the interactions with the database also need to be minimal.


=== Motivations ===
=== Motivations ===
This project was created to give the instructors more information about how students complete reviews
This project was created to give the instructors more information about how students complete reviews, specifically the time they spend on a review. This will give the instructor insight into each review and allow them to improve the teaching experience when it comes to peer reviews.
 
This "review time" metric should be broken down by each link in a submission.
 
== Previous Implementations ==
The previous project teams and their Pull Requests and Wikis are listed here
 
{| class="wikitable"
! Group
! Pull Request
! Wiki
|-
! E1791
| [https://github.com/expertiza/expertiza/pull/1124/files PR] || [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E1791._Track_the_time_that_students_look_at_the_other_submissions_-_logging_improvement Wiki]
|-
! E1872
| [https://github.com/expertiza/expertiza/pull/1309 PR] || [Wiki]
|-
! E1989
| [https://github.com/rohanpillai20/expertiza PR] || [Wiki]
|-
! E2080
| [https://github.com/expertiza/expertiza/pull/1847 PR] || [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2080._Track_the_time_students_look_at_other_submissions Wiki]
|}


=== Requested Changes ===
=== Requested Changes ===
With the general functionality outline by previous groups, our team was asked to:
* Design a database schema for logging time a reviewer spends on a submission
* Modify the Review Report to show the time spent on each submission
* Add tests for the code written


== Our Implementation ==
== Our Implementation ==
=== Github Info ===
Our Pull Request can be found [https://github.com/expertiza/expertiza/pull/1898 here]
=== Tasks Identified ===
Along with the tasks above, upon reviewing existing code and discussing with our mentor we realized there was more to be done. A refactor of the previous teams code was needed as well as proper comments to document how this feature functioned. This extended the scope of our project significantly.
Our list of tasks included:
* Review and understand previous teams code
* Refactor and comment usable code from previous groups (Added after reviewing previous code)
* Create new UI for viewing data
* Improve current database schema to hold the total time spent on a review
* Add tests
== Review Previous Code ==
Upon reviewing all the previous groups code, it seemed that E2080 (our previous group) had the best starting point for our project having improved their previous groups code. They had a way of tracking the time spent on a review, storing it in a local file, saving this file to the database, and displaying the data. We did however find the code was hard to follow and needed to be refactored if we were to have this feature merged with the main Expertiza repository.
== Refactor and Comment ==
Pulling E2080s code as a base, we refactored this code to have comments, proper formatting, and move most functionality out of client side javascript to the rails controller.
== New UI ==
== Improve Database Schema ==
== Testing ==
== Added / Changed Files ==
Dur to the size of our feature, our PR contains many additions. We have limited these to new files as much as possible in order to maintain the current Expertiza files and avoid unnecessary conflicts.
Added Files or Changes:
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-8603b9e3a5873ea183cf8f2102f980272cbf9b34de0876f42b7218019109aca5 app/assets/javascripts/review_time.js]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-53bcd690326197b4d0343db0e97b969c9b7a653381be9ed72ac34271f95168e4 app/assets/javascripts/time_canvas_handler.js]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-8847cbbe7255e3786b40435c99f4e9a1da960237c32c44f7ee717daf7ebe543c app/assets/javascripts/window_manager.js]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-00d7e8781704258b2aa199a04eadfcd3c247438b0358d73df98fb283df28b636 app/assets/stylesheets/time_canvas_css.css]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-858804ef297c49f9d2aaad4a850da3500fbe1745663bb424fe2a8e2140cc02ce app/helpers/submission_viewing_event_helper.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-52a4487c125f78c29e9b0cec0fbae1a2330507596d5f7cdd32c3d52886c84d4a config/initializers/assets.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-df74508b74c64c3ad154f8b8b10afa2cdde9d72047ba1eb1ecd2c5e8991b6ba4 db/migrate/20210315184532_update_review_time_schema.rb]
Refactored Changes:
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-356e07e962d70d0f366852ab9098771aa79e5f844415f000ce68d4efe1dab5f3 app/controllers/submission_viewing_events_controller.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-536af1fd58b1157cf616d913061c6040a205948c34c0e87a563fb8594baaf4ce app/helpers/submitted_content_helper.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-10395a909ed1f2034b4a4c8f57c0e30382d9492e0b16bb6fe6fb91a424f6f034 app/views/reports/_review_report.html.erb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-307431f3c6121f841db70af502fb724b7369eb0f985975667adb68a9b99f55a6 app/views/response/response.html.erb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-c128395a536bf99a86d32c67d705bcc898c7c73d3d7553ebbbf61427d029d749 app/views/submitted_content/_hyperlink.html.erb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-64e78884c4050bc8a9a2e91ee875d1620b9dafc858a87926b44af9ae1fb5094f app/views/submitted_content/_main.html.erb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-f6a1f103da9ba05a288483610bea700e47a571becfd25b8ceeb47b8e88704f45 app/views/submitted_content/_submitted_files.html.erb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-959bc9abc46a55332bb64d5155a79323afa75a50ec1a2137ddd22d926f62c6c5 config/routes.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-cbf8b25d6d853acf58fa9057841f407d29ffe90649c75cf9e3f51b2d6e3aa1d3 db/schema.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-708c777d29aa46dfe24168f477cbb1f78e77464bf0a3ae00d9ffaa830e7f12f7 spec/controllers/submission_viewing_events_controller_spec.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-9c5b1c34d8ea305233bc45e4ca9016a86c3fa9cb4c52d11910906ac2b777830b spec/helpers/submitted_content_helper_spec.rb]
Change by Previous:
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-a80a25a6ffa89a5829356f2ce3a3f031933dbfb31e992d22e90d80e5b1a8c94f app/models/submission_viewing_event.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-413d18ff2d5c3c7b127e703108f7a85d614245d727ada2c1411ad316650a885d app/controllers/response_controller.rb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-6778cf735412502f0641303fb1cf809ea4b4569dc2299e11e26e7aa74117ccb7 app/views/response/view.html.erb]
* [https://github.com/expertiza/expertiza/pull/1898/files?file-filters%5B%5D=#diff-418aa85dcf11e7e8ca0719fe05c98fe87d936fc3c03aef002793dae65e7f8ed6 db/migrate/20191116182414_create_submission_viewing_events.rb]

Revision as of 16:10, 19 March 2021

This is the wiki page of project E2105 of the OSS assignment in Spring 2021 for CSC/ECE 517.

For Peer Reviewers

When testing our deployed app, use the login credentials below:

  Username: instructor6 , Password: password

Then follow along with the methods outlined in the testing section to help you get started!

Project Description

Background

Current in Expertiza, students complete peer review questionnaires during the many rounds of an assignment. This is a great way to gather information about submissions and complete lots of testing while also exposing the reviewing student to practices and skills used in industry.

The instructor can view these reviews on the "Review Reports" screen. This can be found by getting the "Management" dropdown -> Assignments to list all assignments for that instructor. On the far right of each of these rows, one will see multiple buttons for possible actions, select "Review Report". Once the page has loaded, clicking the "View" button while "Review Reports" is selected in the dropdown will open the reports. A list of students who have completed reviews, the teams they reviewed, the amount of written text they submitted in comments, as well as other metrics will be displayed.

The issue with this system is that there is no metric currently for how long a user spends on reviews.

Because this project involves logging data real-time, the interactions with the database also need to be minimal.

Motivations

This project was created to give the instructors more information about how students complete reviews, specifically the time they spend on a review. This will give the instructor insight into each review and allow them to improve the teaching experience when it comes to peer reviews.

This "review time" metric should be broken down by each link in a submission.

Previous Implementations

The previous project teams and their Pull Requests and Wikis are listed here

Group Pull Request Wiki
E1791 PR Wiki
E1872 PR [Wiki]
E1989 PR [Wiki]
E2080 PR Wiki

Requested Changes

With the general functionality outline by previous groups, our team was asked to:

  • Design a database schema for logging time a reviewer spends on a submission
  • Modify the Review Report to show the time spent on each submission
  • Add tests for the code written

Our Implementation

Github Info

Our Pull Request can be found here

Tasks Identified

Along with the tasks above, upon reviewing existing code and discussing with our mentor we realized there was more to be done. A refactor of the previous teams code was needed as well as proper comments to document how this feature functioned. This extended the scope of our project significantly.

Our list of tasks included:

  • Review and understand previous teams code
  • Refactor and comment usable code from previous groups (Added after reviewing previous code)
  • Create new UI for viewing data
  • Improve current database schema to hold the total time spent on a review
  • Add tests

Review Previous Code

Upon reviewing all the previous groups code, it seemed that E2080 (our previous group) had the best starting point for our project having improved their previous groups code. They had a way of tracking the time spent on a review, storing it in a local file, saving this file to the database, and displaying the data. We did however find the code was hard to follow and needed to be refactored if we were to have this feature merged with the main Expertiza repository.

Refactor and Comment

Pulling E2080s code as a base, we refactored this code to have comments, proper formatting, and move most functionality out of client side javascript to the rails controller.

New UI

Improve Database Schema

Testing

Added / Changed Files

Dur to the size of our feature, our PR contains many additions. We have limited these to new files as much as possible in order to maintain the current Expertiza files and avoid unnecessary conflicts.

Added Files or Changes:

Refactored Changes:

Change by Previous: