CSC/ECE 517 Spring 2024 - E2438 Improve assessment360 controller: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Added test plan)
(Update page)
Line 1: Line 1:
==Introduction==
The Ruby on Rails framework serves as the foundation for the open-source project [https://expertiza.ncsu.edu/ Expertiza]. Expertiza offers features that let instructors see a comprehensive, 360-degree overview of the course they teach, including all of the assignments, all of the students enrolled in the course, all of their individual assignment scores, averages, and final scores. The assessment360 controller facilitates this feature.
The following two views are mostly under the control of the assessment360 controller:
1) all_students_all_reviews: This view shows all of the student teammate and meta reviews for every program they worked on that semester. It also offers a summary of these review scores collectively.
2) course_student_grade_summary: This view shows the topic, instructor grade, peer score, and summary of each assignment that students have completed. This also applies to the sum and mean of these scores.
==Problem Statement==
==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.
The current implementation of the assessment360_controller.rb 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. The objective of this project is to enhance the user interface and functionality of the assessment360_controller.rb in the application.
==Team==
===Mentor===
Ameya Vaichalkar, (unityID:agvaicha, GitHub:ameyagv)


===Team Members===
Following are the issues to be addressed in this project:
Daksh Mehta (unityID:dmehta4, GitHub:dakshmehta23)<br>
Soham Patil (unityID:sspatil6, GitHub:ThErOCk07)<br>
Unnati Bukhariya (unityID:ubukhar2, GitHub:unnzzz)<br>


==Issues==
===Issues===
The main goals of this project are as follows:
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 #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.
Line 20: Line 26:
* '''Issue #7:''' Identify and address edge cases from the UI perspective to ensure consistent and clean behavior across different scenarios.
* '''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.
* '''Issue #8:''' Implement separate columns for student name and student ID to improve readability in the UI.
* '''Issue #9:''' Replace hyphen '-' with an en-dash '–'.
==Implementation==
The changes made to the assessment360_controller.rb and related files were necessary to improve the code's readability, maintainability, and adherence to best practices. Let's discuss each change and its significance:
===Files modified===
==== 2. Changes to <code>app/controllers/assessment360_controller.rb</code> and <code>app/views/assessment360/all_student_all_reviews.html.erb</code> ====
{| class="wikitable" style="width: 100%;
! &nbsp;#&nbsp; !! Change !! Rationale !! Commit Link
|-
|1
|Checked and renamed<code>@teamed_count</code> variable
|Checked the usage of variable through IDE whether the variable is used. The variable was used to display the total number of teams each student has collaborated with. Thus, it was renamed from <code>@teamed_count</code> to <code>@student_team_counts</code> in both <code>app/controller/assessment360_controller.rb</code> and <code>app/views/assessment360/all_student_all_reviews.html.erb</code> files for better readability and understandability of the code.
|[https://github.com/kartikrawool/expertiza/commit/6403edc25cf0edde623da63f23d92a1a57d67375 Commit]
|}
==== 6. Changes to <code>Gemfile</code> and <code>config/environments/development.rb</code> ====
{| class="wikitable" style="width: 100%;
! &nbsp;#&nbsp; !! Change !! Rationale !! Commit Link
|-
|1
|Added and initialized the bullet gem
|To identify and reduce unnecessary database queries, the bullet gem was added and activated to increase the performance of the application.
|[https://github.com/kartikrawool/expertiza/commit/6403edc25cf0edde623da63f23d92a1a57d67375 Commit]
|}
==== 8. Changes to <code>app/views/assessment360/course_student_grade_summary.html.erb</code> ====
{| class="wikitable" style="width: 100%;
! &nbsp;#&nbsp; !! Change !! Rationale !! Commit Link
|-
|1
|Separated student name and student ID into different columns
|In order to achieve better understanding of the data being displayed, student name and student ID were separated into different columns.
|[https://github.com/kartikrawool/expertiza/commit/6403edc25cf0edde623da63f23d92a1a57d67375 Commit]
|}
==== 9. Changes to <code>app/controllers/assessment360_controller.rb</code> ====
{| class="wikitable" style="width: 100%;
! &nbsp;#&nbsp; !! Change !! Rationale !! Commit Link
|-
|1
|Replaced hyphen '-' with an en-dash '–'
|Since hyphen was used to represent empty values, it was replaced with an en-dash for enhancing the UI.
|[https://github.com/kartikrawool/expertiza/commit/6403edc25cf0edde623da63f23d92a1a57d67375 Commit]
|}
==Team==
===Mentor===
Ameya Vaichalkar, (unityID:agvaicha, GitHub:ameyagv)
===Team Members===
1) Daksh Mehta (unityID: dmehta4, GitHub: [https://github.com/ dakshmehta23])<br>
2) Soham Patil (unityID: sspatil6, GitHub: [https://github.com/ ThErOCk07])<br>
3) Unnati Bukhariya (unityID: ubukhar2, GitHub: [https://github.com/ unnzzz])<br>




Line 69: Line 135:


11. Add checkboxes at the top of the screen and ensure columns are hidden or visible based on the selected checkboxes
11. Add checkboxes at the top of the screen and ensure columns are hidden or visible based on the selected checkboxes
== Relevant Links==
'''1. Github repository:''' https://github.com/expertiza/expertiza
'''2. Github forked repository:''' https://github.com/ThErOCk07/expertiza
'''3. Github Pull request:'''

Revision as of 22:00, 20 April 2024

Introduction

The Ruby on Rails framework serves as the foundation for the open-source project Expertiza. Expertiza offers features that let instructors see a comprehensive, 360-degree overview of the course they teach, including all of the assignments, all of the students enrolled in the course, all of their individual assignment scores, averages, and final scores. The assessment360 controller facilitates this feature.

The following two views are mostly under the control of the assessment360 controller:


1) all_students_all_reviews: This view shows all of the student teammate and meta reviews for every program they worked on that semester. It also offers a summary of these review scores collectively.

2) course_student_grade_summary: This view shows the topic, instructor grade, peer score, and summary of each assignment that students have completed. This also applies to the sum and mean of these scores.


Problem Statement

The current implementation of the assessment360_controller.rb 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. The objective of this project is to enhance the user interface and functionality of the assessment360_controller.rb in the application.

Following are the issues to be addressed in this project:

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.
  • Issue #9: Replace hyphen '-' with an en-dash '–'.

Implementation

The changes made to the assessment360_controller.rb and related files were necessary to improve the code's readability, maintainability, and adherence to best practices. Let's discuss each change and its significance:

Files modified

2. Changes to app/controllers/assessment360_controller.rb and app/views/assessment360/all_student_all_reviews.html.erb

 #  Change Rationale Commit Link
1 Checked and renamed@teamed_count variable Checked the usage of variable through IDE whether the variable is used. The variable was used to display the total number of teams each student has collaborated with. Thus, it was renamed from @teamed_count to @student_team_counts in both app/controller/assessment360_controller.rb and app/views/assessment360/all_student_all_reviews.html.erb files for better readability and understandability of the code. Commit

6. Changes to Gemfile and config/environments/development.rb

 #  Change Rationale Commit Link
1 Added and initialized the bullet gem To identify and reduce unnecessary database queries, the bullet gem was added and activated to increase the performance of the application. Commit


8. Changes to app/views/assessment360/course_student_grade_summary.html.erb

 #  Change Rationale Commit Link
1 Separated student name and student ID into different columns In order to achieve better understanding of the data being displayed, student name and student ID were separated into different columns. Commit

9. Changes to app/controllers/assessment360_controller.rb

 #  Change Rationale Commit Link
1 Replaced hyphen '-' with an en-dash '–' Since hyphen was used to represent empty values, it was replaced with an en-dash for enhancing the UI. Commit


Team

Mentor

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

Team Members

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


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

Relevant Links

1. Github repository: https://github.com/expertiza/expertiza

2. Github forked repository: https://github.com/ThErOCk07/expertiza

3. Github Pull request: