CSC/ECE 517 Fall 2017/E1788 OSS project Maroon Heatmap fixes: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
== Background ==
== About Expertiza ==


Expertiza is a Ruby on Rails based Open Source project. It is a collaboration tool which lets users with different roles (student, instructor, teaching assistant) to collaborate on a course in an institution. A collaboration could be for an assignment where students teams up for an assignment and instructors grades them on the basis of their submission. Students could review other's works and give feedbacks as well.
Expertiza is a Ruby on Rails based Open Source project. It is a collaboration tool which lets users with different roles (student, instructor, teaching assistant) to collaborate on a course in an institution. A collaboration could be for an assignment where students teams up for an assignment and instructors grades them on the basis of their submission. Students could review other's works and give feedbacks as well.
Line 6: Line 6:
== Problem Statement ==
== Problem Statement ==


'''What it does''':  
===Background===  


Heatgrid is the view which summarizes all the reviews given for the work of a participant (reviews, author feedbacks and meta reviews) on a singular web page so that an instructor can go through all the feedback given to a student and decide their grade. The columns are sortable by their score, criterion, average score for a criterion or a metric. (number of comments with more than 10 words)
Heatgrid is the view which summarizes all the reviews given for the work of a participant (reviews, author feedbacks and meta reviews) on a singular web page so that an instructor can go through all the feedback given to a student and decide their grade. The columns are sortable by their score, criterion, average score for a criterion or a metric. (number of comments with more than 10 words)
What’s wrong with it: app/views/grades/view_team.html.erb is a fairly complex for a view. It uses the concept of view models to generate the required tables. When multiple rounds of reviews are displayed on the heatgrid, a bug prevents the second round of the reviews from being sorted by their criteria, average score, or the metric mentioned above.   
What’s wrong with it: app/views/grades/view_team.html.erb is a fairly complex for a view. It uses the concept of view models to generate the required tables. When multiple rounds of reviews are displayed on the heatgrid, a bug prevents the second round of the reviews from being sorted by their criteria, average score, or the metric mentioned above.   


'''What needs to be done''':
===Problems===


'''Problem 1'''.
====Problem 1====


Find out what’s preventing the reviews in the second round from being sorted by a criterion, average score or the metric even though same code is used for first and second round of the reviews.
*Find out what’s preventing the reviews in the second round from being sorted by a criterion, average score or the metric even though same code is used for first and second round of the reviews.


'''Problem 2'''.
====Problem 2====


Come up with a design that can be used for all the rounds of reviews and implement it.
*Come up with a design that can be used for all the rounds of reviews and implement it.


'''Problem 3'''.
====Problem 3====


1. TAs should only be able to view the heatgrid of students for the assignments in courses for which they’re TAs for.Nor should a TA’s homepage list any courses (s)he is not a TA for.
*TAs should only be able to view the heatgrid of students for the assignments in courses for which they’re TAs for.  


2. Improve the Access Control and allow the TAs of that particular course to view the heatgrid for the participants of that particular course.  
*Nor should a TA’s homepage list any courses (s)he is not a TA for.


[Also see https://github.com/expertiza/expertiza/issues/720
*Improve the Access Control and allow the TAs of that particular course to view the heatgrid for the participants of that particular course.
And https://github.com/expertiza/expertiza/issues/732 ]
 
====Issue links (external)====
*https://github.com/expertiza/expertiza/issues/720
*https://github.com/expertiza/expertiza/issues/732




Line 35: Line 38:
For '''Problem 1''' & '''Problem 2'''.
For '''Problem 1''' & '''Problem 2'''.


'''File 1'''. app/assets/javascripts/view_team_in_grades.js  
'''File 1'''.  
 
*app/assets/javascripts/view_team_in_grades.js  
 
'''File 2'''.


'''File 2'''. app/views/grades/view_team.html.erb
*app/views/grades/view_team.html.erb




Line 47: Line 54:
== Issue and Solution ==
== Issue and Solution ==


'''Problem 1'''
===Problem 1===


For all the tables on the page which had each round's data, html component table was given same id which was only allowing only first table to have the sorting properties.
For all the tables on the page which had each round's data, html component table was given same id which was only allowing only first table to have the sorting properties.


'''Problem 2'''
===Problem 2===


We assigned a unique id to all tables based on the round number and included a class "scoresTable" for each table and initialised sorting features based on class.
We assigned a unique id to all tables based on the round number and included a class "scoresTable" for each table and initialised sorting features based on class.
Line 59: Line 66:
[[File:Screen_Shot_2017-10-21_at_11.15.18_AM.png|frame|upright|center]]
[[File:Screen_Shot_2017-10-21_at_11.15.18_AM.png|frame|upright|center]]


'''Problem 3'''
===Problem 3===


We found that for a teaching assistant, if he/she is not a TA of a course, private field of tmp_object was assigned false value. So, by adding only true values in the resource object returned for the TA, ensured that only courses in which he/she is TA of will be sent back to the view.
We found that for a teaching assistant, if he/she is not a TA of a course, private field of tmp_object was assigned false value. So, by adding only true values in the resource object returned for the TA, ensured that only courses in which he/she is TA of will be sent back to the view.
Line 69: Line 76:
== Testing in UI ==
== Testing in UI ==


'''Problem 1 and Problem 2.'''
===Problem 1 and Problem 2===


'''Steps :'''
====Steps====


1. Login as instructor/TA (who has the privilege to view summary of reviews for all rounds)
1. Login as instructor/TA (who has the privilege to view summary of reviews for all rounds)
Line 80: Line 87:
[[File:Summary_page_with_sorting_enabled.png|frame|upright|center]]
[[File:Summary_page_with_sorting_enabled.png|frame|upright|center]]


====Screenshots====
Below are the screenshots displaying the fix :
Below are the screenshots displaying the fix :


'''Round 1:'''
=====Round 1=====


[[File:Sorting_on_criteria_round1.png|frame|upright|center]]
[[File:Sorting_on_criteria_round1.png|frame|upright|center]]
Line 88: Line 96:
[[File:Sorting_on_score_round1.png|frame|upright|center]]
[[File:Sorting_on_score_round1.png|frame|upright|center]]


'''Round 2:'''
=====Round 2=====


[[File:Sorting_on_criteria_round2.png|frame|upright|center]]
[[File:Sorting_on_criteria_round2.png|frame|upright|center]]
Line 94: Line 102:
[[File:Sorting_on_score_round2.png|frame|upright|center]]
[[File:Sorting_on_score_round2.png|frame|upright|center]]


'''Author Feedback:'''
=====Author Feedback=====


[[File:Sorting_on_criteria_author.png|frame|upright|center]]
[[File:Sorting_on_criteria_author.png|frame|upright|center]]
Line 101: Line 109:




'''Problem 2:'''
===Problem 2===


'''Steps:'''
====Steps====


1. Login as a TA
1. Login as a TA


====Screenshots====
You would be directed to the hop page displaying all courses a TA has privilege to view.
You would be directed to the hop page displaying all courses a TA has privilege to view.



Revision as of 17:53, 21 October 2017

About Expertiza

Expertiza is a Ruby on Rails based Open Source project. It is a collaboration tool which lets users with different roles (student, instructor, teaching assistant) to collaborate on a course in an institution. A collaboration could be for an assignment where students teams up for an assignment and instructors grades them on the basis of their submission. Students could review other's works and give feedbacks as well.


Problem Statement

Background

Heatgrid is the view which summarizes all the reviews given for the work of a participant (reviews, author feedbacks and meta reviews) on a singular web page so that an instructor can go through all the feedback given to a student and decide their grade. The columns are sortable by their score, criterion, average score for a criterion or a metric. (number of comments with more than 10 words) What’s wrong with it: app/views/grades/view_team.html.erb is a fairly complex for a view. It uses the concept of view models to generate the required tables. When multiple rounds of reviews are displayed on the heatgrid, a bug prevents the second round of the reviews from being sorted by their criteria, average score, or the metric mentioned above.

Problems

Problem 1

  • Find out what’s preventing the reviews in the second round from being sorted by a criterion, average score or the metric even though same code is used for first and second round of the reviews.

Problem 2

  • Come up with a design that can be used for all the rounds of reviews and implement it.

Problem 3

  • TAs should only be able to view the heatgrid of students for the assignments in courses for which they’re TAs for.
  • Nor should a TA’s homepage list any courses (s)he is not a TA for.
  • Improve the Access Control and allow the TAs of that particular course to view the heatgrid for the participants of that particular course.

Issue links (external)


Files modified

For Problem 1 & Problem 2.

File 1.

  • app/assets/javascripts/view_team_in_grades.js

File 2.

  • app/views/grades/view_team.html.erb


For Problem 3.

File 1. app/controllers/tree_display_controller.rb


Issue and Solution

Problem 1

For all the tables on the page which had each round's data, html component table was given same id which was only allowing only first table to have the sorting properties.

Problem 2

We assigned a unique id to all tables based on the round number and included a class "scoresTable" for each table and initialised sorting features based on class.

Problem 3

We found that for a teaching assistant, if he/she is not a TA of a course, private field of tmp_object was assigned false value. So, by adding only true values in the resource object returned for the TA, ensured that only courses in which he/she is TA of will be sent back to the view.


Testing in UI

Problem 1 and Problem 2

Steps

1. Login as instructor/TA (who has the privilege to view summary of reviews for all rounds) 2. Choose an assignment and go to summary page

You would see a page similar to below with sorting enabled on specific columns on the right side of name.

Screenshots

Below are the screenshots displaying the fix :

Round 1
Round 2
Author Feedback
File:Sorting on avg author.png


Problem 2

Steps

1. Login as a TA

Screenshots

You would be directed to the hop page displaying all courses a TA has privilege to view.

Below is the db result which matches with the results displayed on the screen