CSC/ECE 517 Spring 2024 - E2438 Improve assessment360 controller

From Expertiza_Wiki
Revision as of 19:33, 8 April 2024 by Sspatil6 (talk | contribs) (Added test plan)
Jump to navigation Jump to search

Problem Statement

The objective of this project is to enhance the user interface and functionality of the assessment360_controller.rb in the application. This controller is responsible for displaying course-level data, including review averages, project details for each student, and their corresponding grades. The current implementation suffers from several issues such as repetitive elements, cryptic variable names, inaccurate grade calculations, and lack of flexibility in displaying different types of review scores.

Team

Mentor

Ameya Vaichalkar, (unityID:agvaicha, GitHub:ameyagv)

Team Members

Daksh Mehta (unityID:dmehta4, GitHub:dakshmehta23)
Soham Patil (unityID:sspatil6, GitHub:ThErOCk07)
Unnati Bukhariya (unityID:ubukhar2, GitHub:unnzzz)

Issues

The main goals of this project are as follows:

  • Issue #1: Refactor the all_students_all_reviews method to accept parameters specifying the type(s) of review scores to be displayed, and suppress columns for scores not selected.
  • Issue #2: Rename the @teamed_count variable to a more descriptive name or remove it if not used.
  • Issue #3: Ensure accuracy in grade calculations by including only the assignments that were attempted by the student in average grade calculation.
  • Issue #4: Enhance the course_student_grade_summary method to include average peer-review scores and instructor-assigned scores.
  • Issue #5: Columns for various types of review scores should be displayed based on user selection.
  • Issue #6: Utilize the Bullet gem to minimize database accesses and optimize performance.
  • Issue #7: Identify and address edge cases from the UI perspective to ensure consistent and clean behavior across different scenarios.
  • Issue #8: Implement separate columns for student name and student ID to improve readability in the UI.


The assessment360 controller is responsible for the following two views -

1) all_students_all_reviews.html.erb - This view displays a table of students, their teammate count, and their performance on various assignments. For each assignment, it shows the metareview and teammate review scores. At the end of each row, it displays the aggregate score for metareviews and teammate reviews for each student. The last row of the table provides the class average for each assignment and the overall class average for metareviews and teammate reviews.

Problems -
1) The column is displayed even though all the rows are blank.
2) The empty blanks can also lead to confusion and thus must be replaced.
3) Allow user to choose the columns they wish to be displayed.
4) Separate columns for student name and student ID


2) course_student_grade_summary.html.erb - This view displays a sortable table of students, their assignments, and their grades. For each assignment, it shows the topic, the peer review score, and the instructor's grade. At the end of each row, it displays the total instructor grade for each student. The table can be sorted by student name or total instructor grade.

Problems -
1) A new column for average peer review score needs to be added.
2) Allow user to choose the columns they wish to be displayed.
2) Separate columns for student name and student ID

Test Plan

The following test plan has been identified to ensure that the our changes don't break the existing system and the new code being introduced is thoroughly tested.

Manual Testing

The following tests have been identified to ensure that the changes made work as anticipated:

1. Select any course

2. Go to the all_students_all_reviews page by clicking on the icon next to the globe icon.

3. Verify that only those columns are visible with at least one data point.

4. Add checkboxes at the top of the screen and ensure columns are hidden or visible based on the selected checkboxes

5. Go to course_student_grade_summary by clicking on the the globe icon.

6. Verify that empty data that is shown as '-' (a hyphen) is replaced by an '–' (en-dash).

7. Verify that average peer score column is visible and has correct values.

8. Verify that unattempted assignments or assignments that are not graded are assigned '0' value instead of leaving it blank.

9. Verify that unattempted assignments or assignments that are not graded aren't counted towards the average score.

10. Verify that student name and student ID are in different columns

11. Add checkboxes at the top of the screen and ensure columns are hidden or visible based on the selected checkboxes