CSC/ECE 517 Fall 2022 - E2282. Fix teammate-review view

From Expertiza_Wiki
Revision as of 02:46, 15 November 2022 by Pmuthuk2 (talk | contribs)
Jump to navigation Jump to search

Problem Description

In Expertiza, both students and instructors are able to view a student's teammate reviews. On the reviews page, only a single heatmap is shown which does not provide a full representation of the student's performance. In addition, it is unclear if the heatmap is displaying information about the reviews the student has written or received. The heatmaps on the instructor and student views are not labeled and do not provide clarity on the information they are displaying.

Proposed Changes

Calculate Composite Review Score

Problem

It would be useful for the instructor to see a composite score derived from all of the reviews similar to the average score shown on the students review page. Currently, the code only displays the average score for each row of the review table on the instructors view. The image below shows where we would like to display the composite score.

Instructor view of a student's reviews does not show a composite score
Instructor view of a student's reviews does not show a composite score

Solution

The previous semester's team calculated the composite value within the view page which does not follow the design principles of this course. We plan to move this mathematical operation to the appropriate model where it where will be accessible to any view that requires a composite score for its heatmap.

The problem will have to be solved through changes in the two files listed below:

rscore.rb

This file contains the logic for doing mathematical functions for review tables. In the init function, the average score for each table is calculated. A new method can push the average score for each review into an array that can later be used to calculate the average across all reviews. Another method can reference this array to calculate the composite score across each review.

_view_heatgrid.html.erb

This file will call the composite score method described above to populate a string tag that displays the average score for all reviews on a view.


Improved Handling of Relevant Reviews

Problem

The heatmap displayed on the Student view does not give the full representation of the group performance. The view should show both the reviews received from a students teammates as well as external reviews. The image below shows that the students can not see their teammates reviews even when the instructor checkbox for viewing teammate reviews is selected.

The "Your Scores" page for students does not show teammate reviews
The "Your Scores" page for students does not show teammate reviews

Solution

We will need to improve how the review table(s) intended for display are generated.

The problem will have to be solved through changes in file listed below:

grades_controller.rb

This file contains the logic for orchestrating the build of the heatmap tables. The logic is this controller will need to be updated to populate the table array with reviews from each team participant.

view_team.html.erb

This file controls what tables are displayed when an instructor views a team. This view will needed to be updated to include the display the missing tables.


Improved Display of Review Heatmap

Problem

This problem contains many parts. Firstly, the student scores view does not even show a heatmap of reviews at all as seen below.

The my scores view page for the student doesn't show any teammate review heatmaps
The my scores view page for the student doesn't show any teammate review heatmaps

This will have to be included with the condition that the instructor has selected that the student can view the reviews in the assignment options. Additionally, in the display of the heatmap itself there is no indication if the reviews displayed are reviews about the student signed in or made by the student signed in as seen below.

The heatmap printout doesn't specify if showing reviews by or for a certain student
The heatmap printout doesn't specify if showing reviews by or for a certain student

A more descriptive label will have to be added to show this. Lastly, a composite score will have to be displayed under each heatmap to average the scores that the student received.

Solution

The problem will have to be solved through changes in two erb files listed below:

_view_heatgrid.html.erb

This file contains the logic to display the actual heatgrid to the user. It will have to be modified in two ways. Firstly, we will have to add a conditional header that will either display that the heatgrid shows reviews for the student or by the student depending on the type of questionnaire that it is displaying. Secondly, we will have to add a place under the heatgrid to display the composite score of that heatgrid. In the previous attempt at this project, the group added the calculation logic for the composite score to this file which is incorrect because it is an erb file. Instead, this file will contain a call to a funtion in the model that will calculate the value and return it for display.

view_team.html.erb

This file contains the logic to display the page where the student views the questionnaires. We will have to add logic to display the reviews of that student if the assignment is set to have show teammate reviews be true.


Preservation of Anonymized View Naming Convention

Problem

Student names are visible in the teammate reviews tab, even when the user is in the anonymized view.

Solution

We plan to remove the team member name from being displayed when using anonymized view by adding some changes to the following files.

user.rb

In user file the anonymized user function is defined and when called it checks and returns True if a particular user is in anonymized view or else returns False. We will be improving the conditional logic to display the user name only when not present in anonymized view.

_view_heatgrid.html.erb

The file contains the logic to display the heatgrid to the user. When we make the changes to user file we will need to make some changes in this file to not display the user name in anonymized view.

Testing

Flow to access affected views

Test Login Credentials

Added Unit Tests

Added System Tests