<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ausem</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ausem"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Ausem"/>
	<updated>2026-05-16T14:19:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152724</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152724"/>
		<updated>2023-12-05T06:00:03Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Scenario 2: Grading histories of reviews */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
This is the design plan in which they followed:&lt;br /&gt;
&lt;br /&gt;
[[File:E1869 Grading Audit Trails UML.jpg]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
This is the updated design flow in which they created to improve previous implementations further:&lt;br /&gt;
&lt;br /&gt;
[[File:Kai diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png|1100px]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Resulting Views'''==&lt;br /&gt;
This is the view in the view submissions page that displays the link for the Submissions Grading History which is circled in red.&lt;br /&gt;
[[File:SubmissionsGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the link:&lt;br /&gt;
[[File:SubmissionGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the view in the review report page that displays the link for the Reviews Grading History which is circled in red.&lt;br /&gt;
[[File:ReviewGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the Reviews Grading History link:&lt;br /&gt;
[[File:ReviewsGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
=== Rspec Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
==== For History of the Grades ====&lt;br /&gt;
The history of the grade and comments are related to the new model grading_history.rb and the new controller grading_history_controller.rb.&lt;br /&gt;
&lt;br /&gt;
So the related RSpec tests are planned to be executed:&lt;br /&gt;
&lt;br /&gt;
    spec/controllers/grading_history_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
For the feature part, test if the grading history and instructor can be shown in chronological order:&lt;br /&gt;
&lt;br /&gt;
    spec/features/grade_histories_spec.rb&lt;br /&gt;
    spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
The link to test files inorder to test the creation of grading history with valid parameters is https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Tests ===&lt;br /&gt;
To start the test, we need to log in as instructor or TA first. These accounts should have access to the assignment. For example: we can use '''intructor6/password'''&lt;br /&gt;
&lt;br /&gt;
==== Scenario 1: Grading histories of submissions ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File: E2383 1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. The instructor can assign grades to a team by clicking 'Assign Grade' in the 'Team name' column:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor can view the grading audit trail by clicking 'Grading History' in the 'History' column, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 3.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Scenario 2: Grading histories of reviews ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Reports&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 4.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. Select 'Review Report' then click 'View', here is the Review Report page. The instructor can assign grades to a review by inputing 'Grade' and 'Comment' then clicking 'Save' button:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 5.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor/TA can view the grading audit trail by clicking 'Grading History' as Step 2 figure shows, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 6.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152723</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152723"/>
		<updated>2023-12-05T05:59:47Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Scenario 1: Grading histories of submissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
This is the design plan in which they followed:&lt;br /&gt;
&lt;br /&gt;
[[File:E1869 Grading Audit Trails UML.jpg]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
This is the updated design flow in which they created to improve previous implementations further:&lt;br /&gt;
&lt;br /&gt;
[[File:Kai diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png|1100px]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Resulting Views'''==&lt;br /&gt;
This is the view in the view submissions page that displays the link for the Submissions Grading History which is circled in red.&lt;br /&gt;
[[File:SubmissionsGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the link:&lt;br /&gt;
[[File:SubmissionGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the view in the review report page that displays the link for the Reviews Grading History which is circled in red.&lt;br /&gt;
[[File:ReviewGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the Reviews Grading History link:&lt;br /&gt;
[[File:ReviewsGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
=== Rspec Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
==== For History of the Grades ====&lt;br /&gt;
The history of the grade and comments are related to the new model grading_history.rb and the new controller grading_history_controller.rb.&lt;br /&gt;
&lt;br /&gt;
So the related RSpec tests are planned to be executed:&lt;br /&gt;
&lt;br /&gt;
    spec/controllers/grading_history_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
For the feature part, test if the grading history and instructor can be shown in chronological order:&lt;br /&gt;
&lt;br /&gt;
    spec/features/grade_histories_spec.rb&lt;br /&gt;
    spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
The link to test files inorder to test the creation of grading history with valid parameters is https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Tests ===&lt;br /&gt;
To start the test, we need to log in as instructor or TA first. These accounts should have access to the assignment. For example: we can use '''intructor6/password'''&lt;br /&gt;
&lt;br /&gt;
==== Scenario 1: Grading histories of submissions ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File: E2383 1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. The instructor can assign grades to a team by clicking 'Assign Grade' in the 'Team name' column:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor can view the grading audit trail by clicking 'Grading History' in the 'History' column, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 3.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Scenario 2: Grading histories of reviews ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Reports&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 4.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. Select 'Review Report' then click 'View', here is the Review Report page. The instructor can assign grades to a review by inputing 'Grade' and 'Comment' then clicking 'Save' button:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 5.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor/TA can view the grading audit trail by clicking 'Grading History' as Step 2 figure shows, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 6.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152722</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152722"/>
		<updated>2023-12-05T05:59:07Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Scenario 1: Grading histories of submissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
This is the design plan in which they followed:&lt;br /&gt;
&lt;br /&gt;
[[File:E1869 Grading Audit Trails UML.jpg]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
This is the updated design flow in which they created to improve previous implementations further:&lt;br /&gt;
&lt;br /&gt;
[[File:Kai diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png|1100px]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Resulting Views'''==&lt;br /&gt;
This is the view in the view submissions page that displays the link for the Submissions Grading History which is circled in red.&lt;br /&gt;
[[File:SubmissionsGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the link:&lt;br /&gt;
[[File:SubmissionGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the view in the review report page that displays the link for the Reviews Grading History which is circled in red.&lt;br /&gt;
[[File:ReviewGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the Reviews Grading History link:&lt;br /&gt;
[[File:ReviewsGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
=== Rspec Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
==== For History of the Grades ====&lt;br /&gt;
The history of the grade and comments are related to the new model grading_history.rb and the new controller grading_history_controller.rb.&lt;br /&gt;
&lt;br /&gt;
So the related RSpec tests are planned to be executed:&lt;br /&gt;
&lt;br /&gt;
    spec/controllers/grading_history_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
For the feature part, test if the grading history and instructor can be shown in chronological order:&lt;br /&gt;
&lt;br /&gt;
    spec/features/grade_histories_spec.rb&lt;br /&gt;
    spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
The link to test files inorder to test the creation of grading history with valid parameters is https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Tests ===&lt;br /&gt;
To start the test, we need to log in as instructor or TA first. These accounts should have access to the assignment. For example: we can use '''intructor6/password'''&lt;br /&gt;
&lt;br /&gt;
==== Scenario 1: Grading histories of submissions ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File: E2383 1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. The instructor can assign grades to a team by clicking 'Assign Grade' in the 'Team name' column:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor can view the grading audit trail by clicking 'Grading History' in the 'History' column, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 3.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Scenario 2: Grading histories of reviews ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Reports&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 4.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. Select 'Review Report' then click 'View', here is the Review Report page. The instructor can assign grades to a review by inputing 'Grade' and 'Comment' then clicking 'Save' button:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 5.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor/TA can view the grading audit trail by clicking 'Grading History' as Step 2 figure shows, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 6.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152721</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152721"/>
		<updated>2023-12-05T05:57:20Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Solutions - Implemented */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
This is the design plan in which they followed:&lt;br /&gt;
&lt;br /&gt;
[[File:E1869 Grading Audit Trails UML.jpg]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
This is the updated design flow in which they created to improve previous implementations further:&lt;br /&gt;
&lt;br /&gt;
[[File:Kai diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png|1100px]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Resulting Views'''==&lt;br /&gt;
This is the view in the view submissions page that displays the link for the Submissions Grading History which is circled in red.&lt;br /&gt;
[[File:SubmissionsGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the link:&lt;br /&gt;
[[File:SubmissionGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the view in the review report page that displays the link for the Reviews Grading History which is circled in red.&lt;br /&gt;
[[File:ReviewGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the Reviews Grading History link:&lt;br /&gt;
[[File:ReviewsGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
=== Rspec Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
==== For History of the Grades ====&lt;br /&gt;
The history of the grade and comments are related to the new model grading_history.rb and the new controller grading_history_controller.rb.&lt;br /&gt;
&lt;br /&gt;
So the related RSpec tests are planned to be executed:&lt;br /&gt;
&lt;br /&gt;
    spec/controllers/grading_history_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
For the feature part, test if the grading history and instructor can be shown in chronological order:&lt;br /&gt;
&lt;br /&gt;
    spec/features/grade_histories_spec.rb&lt;br /&gt;
    spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
The link to test files inorder to test the creation of grading history with valid parameters is https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Tests ===&lt;br /&gt;
To start the test, we need to log in as instructor or TA first. These accounts should have access to the assignment. For example: we can use '''intructor6/password'''&lt;br /&gt;
&lt;br /&gt;
==== Scenario 1: Grading histories of submissions ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File: E2383 1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. The instructor can assign grades to a team by clicking 'Assign Grade' in the 'Team name' column:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor can view the grading audit trail by clicking 'Grading History' in the 'History' column, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 3.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Scenario 2: Grading histories of reviews ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Reports&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 4.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. Select 'Review Report' then click 'View', here is the Review Report page. The instructor can assign grades to a review by inputing 'Grade' and 'Comment' then clicking 'Save' button:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 5.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor/TA can view the grading audit trail by clicking 'Grading History' as Step 2 figure shows, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 6.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152720</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152720"/>
		<updated>2023-12-05T05:57:04Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Resulting Views */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
This is the design plan in which they followed:&lt;br /&gt;
&lt;br /&gt;
[[File:E1869 Grading Audit Trails UML.jpg]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
This is the updated design flow in which they created to improve previous implementations further:&lt;br /&gt;
&lt;br /&gt;
[[File:Kai diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Resulting Views'''==&lt;br /&gt;
This is the view in the view submissions page that displays the link for the Submissions Grading History which is circled in red.&lt;br /&gt;
[[File:SubmissionsGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the link:&lt;br /&gt;
[[File:SubmissionGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the view in the review report page that displays the link for the Reviews Grading History which is circled in red.&lt;br /&gt;
[[File:ReviewGradingHistoryLink.jpeg|1100px]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the Reviews Grading History link:&lt;br /&gt;
[[File:ReviewsGradingHist.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
=== Rspec Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
==== For History of the Grades ====&lt;br /&gt;
The history of the grade and comments are related to the new model grading_history.rb and the new controller grading_history_controller.rb.&lt;br /&gt;
&lt;br /&gt;
So the related RSpec tests are planned to be executed:&lt;br /&gt;
&lt;br /&gt;
    spec/controllers/grading_history_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
For the feature part, test if the grading history and instructor can be shown in chronological order:&lt;br /&gt;
&lt;br /&gt;
    spec/features/grade_histories_spec.rb&lt;br /&gt;
    spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
The link to test files inorder to test the creation of grading history with valid parameters is https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Tests ===&lt;br /&gt;
To start the test, we need to log in as instructor or TA first. These accounts should have access to the assignment. For example: we can use '''intructor6/password'''&lt;br /&gt;
&lt;br /&gt;
==== Scenario 1: Grading histories of submissions ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File: E2383 1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. The instructor can assign grades to a team by clicking 'Assign Grade' in the 'Team name' column:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor can view the grading audit trail by clicking 'Grading History' in the 'History' column, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 3.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Scenario 2: Grading histories of reviews ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Reports&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 4.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. Select 'Review Report' then click 'View', here is the Review Report page. The instructor can assign grades to a review by inputing 'Grade' and 'Comment' then clicking 'Save' button:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 5.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor/TA can view the grading audit trail by clicking 'Grading History' as Step 2 figure shows, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 6.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152719</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152719"/>
		<updated>2023-12-05T05:55:44Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Manual UI Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
This is the design plan in which they followed:&lt;br /&gt;
&lt;br /&gt;
[[File:E1869 Grading Audit Trails UML.jpg]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
This is the updated design flow in which they created to improve previous implementations further:&lt;br /&gt;
&lt;br /&gt;
[[File:Kai diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Resulting Views'''==&lt;br /&gt;
This is the view in the view submissions page that displays the link for the Submissions Grading History which is circled in red.&lt;br /&gt;
[[File:SubmissionsGradingHistoryLink.jpeg]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the link:&lt;br /&gt;
[[File:SubmissionGradingHist.png]]&lt;br /&gt;
&lt;br /&gt;
This is the view in the review report page that displays the link for the Reviews Grading History which is circled in red.&lt;br /&gt;
[[File:ReviewGradingHistoryLink.jpeg]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the Reviews Grading History link:&lt;br /&gt;
[[File:ReviewsGradingHist.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
=== Rspec Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
==== For History of the Grades ====&lt;br /&gt;
The history of the grade and comments are related to the new model grading_history.rb and the new controller grading_history_controller.rb.&lt;br /&gt;
&lt;br /&gt;
So the related RSpec tests are planned to be executed:&lt;br /&gt;
&lt;br /&gt;
    spec/controllers/grading_history_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
For the feature part, test if the grading history and instructor can be shown in chronological order:&lt;br /&gt;
&lt;br /&gt;
    spec/features/grade_histories_spec.rb&lt;br /&gt;
    spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
The link to test files inorder to test the creation of grading history with valid parameters is https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Tests ===&lt;br /&gt;
To start the test, we need to log in as instructor or TA first. These accounts should have access to the assignment. For example: we can use '''intructor6/password'''&lt;br /&gt;
&lt;br /&gt;
==== Scenario 1: Grading histories of submissions ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File: E2383 1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. The instructor can assign grades to a team by clicking 'Assign Grade' in the 'Team name' column:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor can view the grading audit trail by clicking 'Grading History' in the 'History' column, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 3.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Scenario 2: Grading histories of reviews ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Reports&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 4.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. Select 'Review Report' then click 'View', here is the Review Report page. The instructor can assign grades to a review by inputing 'Grade' and 'Comment' then clicking 'Save' button:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 5.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor/TA can view the grading audit trail by clicking 'Grading History' as Step 2 figure shows, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2383 6.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_6.png&amp;diff=152717</id>
		<title>File:E2383 6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_6.png&amp;diff=152717"/>
		<updated>2023-12-05T05:54:24Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_5.png&amp;diff=152716</id>
		<title>File:E2383 5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_5.png&amp;diff=152716"/>
		<updated>2023-12-05T05:53:58Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_4.png&amp;diff=152715</id>
		<title>File:E2383 4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_4.png&amp;diff=152715"/>
		<updated>2023-12-05T05:53:34Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_3.png&amp;diff=152714</id>
		<title>File:E2383 3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_3.png&amp;diff=152714"/>
		<updated>2023-12-05T05:53:03Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_2.png&amp;diff=152713</id>
		<title>File:E2383 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_2.png&amp;diff=152713"/>
		<updated>2023-12-05T05:52:35Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_1.png&amp;diff=152712</id>
		<title>File:E2383 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:E2383_1.png&amp;diff=152712"/>
		<updated>2023-12-05T05:49:24Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152704</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152704"/>
		<updated>2023-12-05T05:40:01Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
This is the design plan in which they followed:&lt;br /&gt;
&lt;br /&gt;
[[File:E1869 Grading Audit Trails UML.jpg]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
This is the updated design flow in which they created to improve previous implementations further:&lt;br /&gt;
&lt;br /&gt;
[[File:Kai diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Resulting Views'''==&lt;br /&gt;
This is the view in the view submissions page that displays the link for the Submissions Grading History which is circled in red.&lt;br /&gt;
[[File:SubmissionsGradingHistoryLink.jpeg]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the link:&lt;br /&gt;
[[File:SubmissionGradingHist.png]]&lt;br /&gt;
&lt;br /&gt;
This is the view in the review report page that displays the link for the Reviews Grading History which is circled in red.&lt;br /&gt;
[[File:ReviewGradingHistoryLink.jpeg]]&lt;br /&gt;
&lt;br /&gt;
This is the resulting view after clicking the Reviews Grading History link:&lt;br /&gt;
[[File:ReviewsGradingHist.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
&lt;br /&gt;
=== Rspec Unit Tests ===&lt;br /&gt;
&lt;br /&gt;
==== For History of the Grades ====&lt;br /&gt;
The history of the grade and comments are related to the new model grading_history.rb and the new controller grading_history_controller.rb.&lt;br /&gt;
&lt;br /&gt;
So the related RSpec tests are planned to be executed:&lt;br /&gt;
&lt;br /&gt;
    spec/controllers/grading_history_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
For the feature part, test if the grading history and instructor can be shown in chronological order:&lt;br /&gt;
&lt;br /&gt;
    spec/features/grade_histories_spec.rb&lt;br /&gt;
    spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
The link to test files inorder to test the creation of grading history with valid parameters is https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=== Manual UI Tests ===&lt;br /&gt;
To start the test, we need to log in as instructor or TA first. These accounts should have access to the assignment. For example: we can use '''intructor6/password'''&lt;br /&gt;
&lt;br /&gt;
==== Scenario 1: Grading histories of submissions ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2158_view_submisson.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. The instructor can assign grades to a team by clicking 'Assign Grade' in the 'Team name' column:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2158_grading_history_submisson1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor can view the grading audit trail by clicking 'Grading History' in the 'History' column, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2158_grading_history_submisson2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Scenario 2: Grading histories of reviews ====&lt;br /&gt;
Step 1. Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Reports&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2158_view_report.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 2. Select 'Review Report' then click 'View', here is the Review Report page. The instructor can assign grades to a review by inputing 'Grade' and 'Comment' then clicking 'Save' button:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2158_grading_history_report1.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Step 3. The instructor/TA can view the grading audit trail by clicking 'Grading History' as Step 2 figure shows, here is the record page:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:E2158_grading_history_report2.png|1100px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-12-05_at_12.02.23_AM.png&amp;diff=152664</id>
		<title>File:Screenshot 2023-12-05 at 12.02.23 AM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-12-05_at_12.02.23_AM.png&amp;diff=152664"/>
		<updated>2023-12-05T05:05:29Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-12-05_at_12.02.05_AM.png&amp;diff=152663</id>
		<title>File:Screenshot 2023-12-05 at 12.02.05 AM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-12-05_at_12.02.05_AM.png&amp;diff=152663"/>
		<updated>2023-12-05T05:05:06Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152661</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152661"/>
		<updated>2023-12-05T05:01:30Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Solutions - Implemented */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been added.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152659</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152659"/>
		<updated>2023-12-05T05:00:40Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152658</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152658"/>
		<updated>2023-12-05T05:00:26Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4. There were no code climate issues regarding this issue&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. The authentication already used the necessary parts&lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a[https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a]&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152656</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152656"/>
		<updated>2023-12-05T04:59:46Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4.&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. &lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
[[[https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a]&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152655</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152655"/>
		<updated>2023-12-05T04:58:59Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Reimplementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to deal with allowing only the correct people to view the grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to create the relationships that the grading history has with an instructor who is creating the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4.&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. &lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a]&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152654</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152654"/>
		<updated>2023-12-05T04:57:05Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Proposed Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added because it was from the previous teams implementation which concerned the MVC of the grading_history they created. It dealt with allowing only the correct people to view the &lt;br /&gt;
  grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to follow the previous teams MVC of the grading_history they created. It was used to create the relationships that the grading history has with an instructor who is creating&lt;br /&gt;
 the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4.&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. &lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a]&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152653</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152653"/>
		<updated>2023-12-05T04:55:38Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Proposed Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Code changes ===&lt;br /&gt;
====1. \app\controllers\grades_controller.rb====&lt;br /&gt;
Add create submission record function&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GradingHistory.create(instructor_id: session[:user].id,&lt;br /&gt;
  assignment_id: participant.assignment.id,&lt;br /&gt;
  grading_type: &amp;quot;Submission&amp;quot;,&lt;br /&gt;
  grade_receiver_id: @team.id,&lt;br /&gt;
  grade: @team.grade_for_submission,&lt;br /&gt;
  comment: @team.comment_for_submission)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. \app\controllers\grading_histories_controller.rb====&lt;br /&gt;
Create grading_histories_controller.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class GradingHistoriesController &amp;lt; ApplicationController&lt;br /&gt;
    before_action :set_grading_history, only: %i[show]&lt;br /&gt;
  &lt;br /&gt;
    def action_allowed?&lt;br /&gt;
      return true if ['Super-Administrator', 'Administrator'].include? current_role_name&lt;br /&gt;
      check_type(params[:grade_type])&lt;br /&gt;
      if @assignment.instructor_id == current_user.id&lt;br /&gt;
        true&lt;br /&gt;
      elsif TaMapping.exists?(ta_id: current_user.id, course_id: @assignment.course_id) &amp;amp;&amp;amp;&lt;br /&gt;
          (TaMapping.where(course_id: @assignment.course_id).include? TaMapping.where(ta_id: current_user.id, course_id: @assignment.course_id).first)&lt;br /&gt;
        true&lt;br /&gt;
      elsif @assignment.course_id &amp;amp;&amp;amp; Course.find(@assignment.course_id).instructor_id == current_user.id&lt;br /&gt;
        true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    def check_type(type)&lt;br /&gt;
      if type.eql? &amp;quot;Submission&amp;quot;&lt;br /&gt;
        assignment_team = AssignmentTeam.find(params[:grade_receiver_id])&lt;br /&gt;
        @assignment = Assignment.find(assignment_team.parent_id)&lt;br /&gt;
      end&lt;br /&gt;
      if type.eql? &amp;quot;Review&amp;quot;&lt;br /&gt;
        participant_id = params[:participant_id]&lt;br /&gt;
        grade_receiver = AssignmentParticipant.find(participant_id)&lt;br /&gt;
        @assignment = Assignment.find(grade_receiver.parent_id)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  &lt;br /&gt;
    def index&lt;br /&gt;
      @grading_histories = GradingHistory.where(grade_receiver_id: params[:grade_receiver_id], grading_type: params[:grade_type]).reverse_order&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====3. \app\controllers\review_mapping_controller.rb====&lt;br /&gt;
Add create review record function&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GradingHistory.create(instructor_id: session[:user].id,&lt;br /&gt;
  assignment_id: params[:assignment_id],&lt;br /&gt;
  grading_type: &amp;quot;Review&amp;quot;,&lt;br /&gt;
  grade_receiver_id: Participant.find(params[:participant_id]).user_id,&lt;br /&gt;
  grade: params[:grade_for_reviewer],&lt;br /&gt;
  comment: params[:comment_for_reviewer])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4. \app\helpers\grading_histories_helper.rb====&lt;br /&gt;
Create grading_histories_helper.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module GradingHistoriesHelper&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====5. \app\models\grading_history.rb====&lt;br /&gt;
Create grading_history.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class GradingHistory &amp;lt; ActiveRecord::Base&lt;br /&gt;
  attr_protected&lt;br /&gt;
    belongs_to :instructor, inverse_of: :instructor_id&lt;br /&gt;
    belongs_to :assignment, inverse_of: :assignment_id&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====6. \app\models\review_grading_history.rb====&lt;br /&gt;
Create review_grading_history.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class ReviewGradingHistory &amp;lt; GradingHistory&lt;br /&gt;
  attr_protected&lt;br /&gt;
    belongs_to :grade_receiver, class_name: 'Participant', inverse_of: :grade_receiver_id&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====7. \app\models\submission_grading_history.rb====&lt;br /&gt;
Create submission_grading_history.rb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class SubmissionGradingHistory &amp;lt; GradingHistory&lt;br /&gt;
  attr_protected&lt;br /&gt;
    belongs_to :grade_receiver, class_name: 'Team', inverse_of: :grade_receiver_id&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====8. \app\views\assignments\list_submissions.html.erb====&lt;br /&gt;
Add &amp;quot;Grading History&amp;quot; link to submissions page&lt;br /&gt;
====9. \app\views\grading_histories\index.html.erb====&lt;br /&gt;
Create grading histories index page&lt;br /&gt;
====10. \app\views\reports\_review_report.html.erb====&lt;br /&gt;
Add &amp;quot;Grading History&amp;quot; link to review report page&lt;br /&gt;
====11. \config\routes.rb====&lt;br /&gt;
Configure the routes&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
resources :grading_histories, only: [:index]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====12. \app\views\assignments\list_submissions.html.erb====&lt;br /&gt;
Create table grading_histories&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class CreateGradingHistories &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def change&lt;br /&gt;
    create_table :grading_histories do |t|&lt;br /&gt;
       t.integer :instructor_id&lt;br /&gt;
       t.integer :assignment_id&lt;br /&gt;
       t.string  :grading_type&lt;br /&gt;
       t.integer :grade_receiver_id&lt;br /&gt;
       t.integer :grade&lt;br /&gt;
       t.text :comment&lt;br /&gt;
       t.timestamps null: false&lt;br /&gt;
     end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== History of Comment and Grade for Reviews ===&lt;br /&gt;
&lt;br /&gt;
Added the link &amp;quot;history&amp;quot; to a proper place as the expected design picture shows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Review History Flow====&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added because it was from the previous teams implementation which concerned the MVC of the grading_history they created. It dealt with allowing only the correct people to view the &lt;br /&gt;
  grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to follow the previous teams MVC of the grading_history they created. It was used to create the relationships that the grading history has with an instructor who is creating&lt;br /&gt;
 the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4.&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. &lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a]&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152646</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152646"/>
		<updated>2023-12-05T04:47:56Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Problem Statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored:&lt;br /&gt;
&lt;br /&gt;
1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done.&lt;br /&gt;
2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two places need to add grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. Review grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Review Report&lt;br /&gt;
2. Submission grade: Log in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View submissions&lt;br /&gt;
The grading audit trail can probably be implemented as the submission records history on Expertiza. The required page can be reached by logging in as instructor -&amp;gt; Manage -&amp;gt; Assignments -&amp;gt; View Submissions -&amp;gt; History&lt;br /&gt;
&lt;br /&gt;
At the minimum, a grading log entry must include the instructor id, assignment id, student id, grade, comment and timestamp.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added because it was from the previous teams implementation which concerned the MVC of the grading_history they created. It dealt with allowing only the correct people to view the &lt;br /&gt;
  grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to follow the previous teams MVC of the grading_history they created. It was used to create the relationships that the grading history has with an instructor who is creating&lt;br /&gt;
 the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4.&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. &lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a]&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152644</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152644"/>
		<updated>2023-12-05T04:47:18Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
In the current implementation of expertiza, any instructor can assign or edit a grade but there is no way to track who gave the grade and when. &lt;br /&gt;
Inorder to solve this, a grading audit trail must be created and the following information needs to be stored: &lt;br /&gt;
:1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done. &lt;br /&gt;
:2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
Previous student teams have attempted to implement this functionality, but their implementations had issues. Our solution will build on the work of teams E1934 and E2237, addressing the problems in their implementations.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added because it was from the previous teams implementation which concerned the MVC of the grading_history they created. It dealt with allowing only the correct people to view the &lt;br /&gt;
  grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to follow the previous teams MVC of the grading_history they created. It was used to create the relationships that the grading history has with an instructor who is creating&lt;br /&gt;
 the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4.&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. &lt;br /&gt;
:3. The column width was reduced by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
We have added a test case to test if a grading history is getting created when valid parameters are used. &lt;br /&gt;
The files include&lt;br /&gt;
spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
spec/factories/factories.rb&lt;br /&gt;
spec/features/grade_histories_spec.rb&lt;br /&gt;
spec/helpers/grade_histories_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza/commit/067b52315ac1ff7ce1b89fc44121393cadbabc6a]&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152596</id>
		<title>CSC/ECE 517 Fall 2023 - E2383. Grading Audit Trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2383._Grading_Audit_Trail&amp;diff=152596"/>
		<updated>2023-12-05T04:04:11Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
After an instructor gave a grade to an assignment, there is no way to track who gave the grade.&lt;br /&gt;
A grading audit trail must be created and the following information needs to be stored: &lt;br /&gt;
:1. When a grade is assigned by an instructor, there needs to be an indication of who did it and when it was done. &lt;br /&gt;
:2. Comments previously provided by other instructors must also be preserved.&lt;br /&gt;
&lt;br /&gt;
This information needs to be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
There have been previous attempts from teams to implement such functionality and our implementation will be based on '''E1934''' and '''E2237'''. Each of these implementations have problems of their own that we need to address.&lt;br /&gt;
&lt;br /&gt;
== '''Overview of Major Changes By Previous Teams''' ==&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/E1934_-_Grading_Audit_Trail E1934]===&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Their Screencast]&lt;br /&gt;
&lt;br /&gt;
*Created a database called grading_history to store elements for the Grading Audit Trail (instructor id, assignment id, grade tyoe, student id, grade, comment and timestamp)&lt;br /&gt;
*Used MVC design to create a model, a controller, and a view for both of Review Grade and Submission Grade. These will be the links used in the View Submissions view and View Review Report view so that the grading trail for an assignments submission and reviews are seperate.&lt;br /&gt;
*Modified grades controller, so that every time, a grade is submitted or edited, grading_history_controller.rb will call a method to create an entry that saves into the database.&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
===[https://wiki-expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2022_-_E2237:_Grading_audit_trail E2237]===&lt;br /&gt;
&lt;br /&gt;
*They fixed some issues that were causing the system to crash during testing&lt;br /&gt;
*Altered the Grading History view&lt;br /&gt;
*Explained the reasoning for changes made to files using diagrams and justifications&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
=='''Proposed Solution'''==&lt;br /&gt;
We plan on using the implementation of E2237 since it is the latest in the Grading Audit Trail projects and has the latest in terms of testing. These files cannot be added haphazardly since parts of the implementation is a cause to concern and caused the changes to not be implemented. It is also using an older version of expertiza so some parts may not be compatible.  &lt;br /&gt;
&lt;br /&gt;
We must first figure out exactly what changes and issues to address in their implementation by meeting with our mentor. We also need to reimplement the following files since none of their changes were implemented:&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     Calls the grading history view after validating Submission and Review Type.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model for Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/review_grading_history.rb &lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Review Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/models/submission_grading_history.rb &lt;br /&gt;
'''&lt;br /&gt;
     Model containing specifics of Submission Grading History. Inherits Grading History.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_history/index_html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This is a view for grading audit trail, it will display all grading histories of a &lt;br /&gt;
     submission/review&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/grade_histories_spec.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Feature test to check if the grades appear in chronological order&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
     Helper file to facilitate the above mentioned feature test.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Reimplementation'''==&lt;br /&gt;
Since the previous teams implementations were not integrated we have to reimplement their files which we will do by looking at their commits and pull request to see what files are necessary and what can be left out to address the issues of their implementation.&lt;br /&gt;
&lt;br /&gt;
'''[https://github.com/ErikLG360/expertiza/commit/e28a857695549cc91c477587707e48100d2bd333 Files being Reimplemented/Modified]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reimplemented'''&lt;br /&gt;
*app/controllers/grading_histories_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added because it was from the previous teams implementation which concerned the MVC of the grading_history they created. It dealt with allowing only the correct people to view the &lt;br /&gt;
  grading history, checking the assignment type whether it be a submission or review, and indexing all the grading history for the assignment in chronological order.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was added to follow the previous teams MVC of the grading_history they created. It was used to create the relationships that the grading history has with an instructor who is creating&lt;br /&gt;
 the parts of the grading history and the assignments that will have a grading history.&lt;br /&gt;
'''&lt;br /&gt;
*app/models/review_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file creates the relationship that a participant will have a Review Grading History &lt;br /&gt;
'''&lt;br /&gt;
*app/models/submission_grading_history.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file create the relationship that a participant/grade_reciever will have a Submission Grading History&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
*app/views/grading_histories/index.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for the grading history table which will change depending on if its a Review or submission type&lt;br /&gt;
'''&lt;br /&gt;
*app/views/grading_histories/_form.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     This file contains the view for when a grading history contains any error when it is about to be saved&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''Modified'''&lt;br /&gt;
*app/controllers/grades_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_submission was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of submissions and not reviews.&lt;br /&gt;
'''&lt;br /&gt;
*app/controllers/review_mapping_controller.rb&lt;br /&gt;
'''&lt;br /&gt;
     This file was modified based off the previous teams implementation because when the method save_grade_and_comment_for_reviewer was called it should also create a grading history so that&lt;br /&gt;
 the grading audit can be created and added to. This was mainly focusing on the grading history of reviews and not submissions.&lt;br /&gt;
'''&lt;br /&gt;
*app/views/assignments/list_submissions.html.erb&lt;br /&gt;
'''&lt;br /&gt;
     It was modified to add the new hyperlink to display the grading history of a submission.&lt;br /&gt;
'''&lt;br /&gt;
*config/routes.rb&lt;br /&gt;
'''&lt;br /&gt;
     It was to add the new route for grading histories&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=='''Solutions - Implemented'''==&lt;br /&gt;
&lt;br /&gt;
'''E1934'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. For review grades, the “Grading History” link must not be in a separate column. It should be in :smaller text below the in the “Save” button. &lt;br /&gt;
:2. In the view grading record page, remove the receiver column and add it to the title &lt;br /&gt;
:3. Restrict the column width on the grading record page &lt;br /&gt;
:4. Add comments on list_submissions.html.erb to indicate that the alignment was changed to fix code climate issues &lt;br /&gt;
:5. Ensure that white space changes are separate commits &lt;br /&gt;
:6. Revert changes made to list_review_mapping.html.erb &lt;br /&gt;
:7. Remove the review_report_html.erb file&lt;br /&gt;
:8. Design doc – mention why each of those files were changed&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. Found the correct location to put the Review Grading History link and also fix the previous teams creation of a grading history to work with the latest expertiza update. &lt;br /&gt;
Files changed include: &lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/controllers/review_mapping_controller.rb]&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/c0352cb73f7de1fba72938df2953ee82cb84bb6a app/views/reports/_review_report.html.erb]&lt;br /&gt;
&lt;br /&gt;
:2. The previous implementatation of E2237 tackled this problem and moved it to the title.&lt;br /&gt;
[[File:GradingTableTitle.png]]&lt;br /&gt;
:3. The column widths were lessened by about 15px in the grading record page&lt;br /&gt;
&lt;br /&gt;
Files changed include:&lt;br /&gt;
*[https://github.com/ErikLG360/expertiza/commit/124bd12d23f75db0a68e2fac8a8487c5f7a7ed67 app/views/grading_histories/index.html.erb]&lt;br /&gt;
&lt;br /&gt;
:4.&lt;br /&gt;
&lt;br /&gt;
:5. All code climate changes are their own commits such as [https://github.com/ErikLG360/expertiza/commit/e95656f4d5e4f2ba4fc8d3f40716673ccafb41b1 This]&lt;br /&gt;
&lt;br /&gt;
:6. This issue was resolved by not adding in their implementation for the list_review_mapping.html.erb&lt;br /&gt;
&lt;br /&gt;
:7. This issue was resolved by not adding in the review_report_html.erb file&lt;br /&gt;
&lt;br /&gt;
:8. This issue is resolved in the '''Reimplementation''' section of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''E2237'''&lt;br /&gt;
&lt;br /&gt;
'''Problems/Issues''' &lt;br /&gt;
:1. Redundant files generated by scaffolding need to be removed, along with debugging code. Ex) Coffee created by scaffolding and console logging for debugging. &lt;br /&gt;
:2. Authentication could be done using existing utilities, no need to create their own. &lt;br /&gt;
:3. Some formatting changes could be done especially on how cells span in review report page. Ex) Formatting change for spans in between cells in review report.&lt;br /&gt;
:4. Code from previous implementation is a concern.&lt;br /&gt;
&lt;br /&gt;
'''Solutions''' &lt;br /&gt;
:1. These files have not been reimplemented.&lt;br /&gt;
:2. &lt;br /&gt;
:3. The column width was lessed by 15px refer to the solution for E1934 number 3.&lt;br /&gt;
:4. Code for the review_mapping_controller was changed to match the current state of expertiza refer to the solution for E1934 number 1.&lt;br /&gt;
&lt;br /&gt;
=='''Testing Plan'''==&lt;br /&gt;
The Testing that we will implement will build from E2237 since the previous tests crash and was something they solved. We also plan to implement test using the given Test Skeleton.&lt;br /&gt;
&lt;br /&gt;
=='''Future Scope'''==&lt;br /&gt;
This project may need further improvement since it does not seem like there should be an abundance of files added and perhaps using the MVC design is not necessarily needed. There can also be a reduction of code since the difference between the two main grading histories is just whether it is a review or submission type.&lt;br /&gt;
&lt;br /&gt;
=='''Relevant Links'''==&lt;br /&gt;
* '''Github Repository:''' https://github.com/ErikLG360/expertiza&lt;br /&gt;
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2696&lt;br /&gt;
* '''VCL Server (Valid until 12/15/23):'''  http://152.7.179.44:8080&lt;br /&gt;
* '''Video:''' https://drive.google.com/file/d/1HIrJtCsbZXSqGPHShuV6mbSTOKvV5MxT/view?usp=drive_link&lt;br /&gt;
&lt;br /&gt;
=='''Contributors to this project'''==&lt;br /&gt;
*Amulya Usem&lt;br /&gt;
*Erik Lopez-Godinez&lt;br /&gt;
*Gowtham Pollam&lt;br /&gt;
&lt;br /&gt;
*'''Mentor''': Srilekha Gudipati&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151263</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151263"/>
		<updated>2023-11-07T05:04:12Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute is handled so as to allow the user to refrain from clicking the button to run the algorithm again if done once already. So the attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
Test cases were added and existing cases were modified for some edge scenarios.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-11-07 at 12.00.13 AM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-11-07 at 12.00.26 AM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-11-07 at 12.00.36 AM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
&lt;br /&gt;
* The main task is to ensure existing functionality remains intact post-integration of new code and refactoring of review_bid.rb.&lt;br /&gt;
* Refactor tests in response to methods in review_bid.rb transitioning to instance methods.&lt;br /&gt;
* For requirement 5, implement tests to validate the correct increment and decrement of the newly introduced attribute.&lt;br /&gt;
* For requirement 6, introduce a test case to verify the &amp;quot;Run Review Algorithm&amp;quot; button's enablement for algorithm re-execution.&lt;br /&gt;
* For requirement 9, a test in review_bids_helper_spec.rb assesses the background color alteration contingent on participant numbers and outstanding bid size.&lt;br /&gt;
* Develop additional test cases to ascertain the random allocation of reviews when a student has not placed a bid.&lt;br /&gt;
&lt;br /&gt;
=== Physical Testing ===&lt;br /&gt;
&lt;br /&gt;
* With the UI under development in a separate project, verification via direct links is essential.&lt;br /&gt;
* Execute a full functionality sweep to detect any disruptions caused by the recent code refactoring.&lt;br /&gt;
* For requirement 5, a manual check to confirm the visibility and accuracy of the bidding count is necessary at http://152.7.177.6:8080/review_bids/200.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-11-07_at_12.00.36_AM.png&amp;diff=151262</id>
		<title>File:Screenshot 2023-11-07 at 12.00.36 AM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-11-07_at_12.00.36_AM.png&amp;diff=151262"/>
		<updated>2023-11-07T05:01:41Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-11-07_at_12.00.26_AM.png&amp;diff=151261</id>
		<title>File:Screenshot 2023-11-07 at 12.00.26 AM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-11-07_at_12.00.26_AM.png&amp;diff=151261"/>
		<updated>2023-11-07T05:01:27Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-11-07_at_12.00.13_AM.png&amp;diff=151260</id>
		<title>File:Screenshot 2023-11-07 at 12.00.13 AM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-11-07_at_12.00.13_AM.png&amp;diff=151260"/>
		<updated>2023-11-07T05:01:10Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151258</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151258"/>
		<updated>2023-11-07T04:59:25Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute is handled so as to allow the user to refrain from clicking the button to run the algorithm again if done once already. So the attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
Test cases were added and existing cases were modified for several scenarios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
=== RSpec ===&lt;br /&gt;
&lt;br /&gt;
* The main task is to ensure existing functionality remains intact post-integration of new code and refactoring of review_bid.rb.&lt;br /&gt;
* Refactor tests in response to methods in review_bid.rb transitioning to instance methods.&lt;br /&gt;
* For requirement 5, implement tests to validate the correct increment and decrement of the newly introduced attribute.&lt;br /&gt;
* For requirement 6, introduce a test case to verify the &amp;quot;Run Review Algorithm&amp;quot; button's enablement for algorithm re-execution.&lt;br /&gt;
* For requirement 9, a test in review_bids_helper_spec.rb assesses the background color alteration contingent on participant numbers and outstanding bid size.&lt;br /&gt;
* Develop additional test cases to ascertain the random allocation of reviews when a student has not placed a bid.&lt;br /&gt;
&lt;br /&gt;
=== Physical Testing ===&lt;br /&gt;
&lt;br /&gt;
* With the UI under development in a separate project, verification via direct links is essential.&lt;br /&gt;
* Execute a full functionality sweep to detect any disruptions caused by the recent code refactoring.&lt;br /&gt;
* For requirement 5, a manual check to confirm the visibility and accuracy of the bidding count is necessary at http://152.7.177.6:8080/review_bids/200.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151061</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151061"/>
		<updated>2023-11-02T17:53:33Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
'''RSpec'''&lt;br /&gt;
*The main task here is to make sure the functionality didn't break due to addition of new code and refactoring the existing code.&lt;br /&gt;
&lt;br /&gt;
*Since the methods in review_bid.rb were changed to instance methods, the corresponding testing files were refactored as well.&lt;br /&gt;
*For requirement 5, since a new attribute was added, we need to test if it is getting properly incremented and decremented.&lt;br /&gt;
*For requirement 6, we need to add a test case to check if the Run Review Algorithm button is enabled to run the algorithm again&lt;br /&gt;
*For requirement 9, a new test case was added in review_bids_helper_spec.rb that tests the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
*More test cases will be added for testing if reviews are being assigned randomly when the student doesn't bid.&lt;br /&gt;
 &lt;br /&gt;
'''Physical Testing'''&lt;br /&gt;
*Since there is no UI and it is being implemented in a different project, we have to make sure the changes are done using the direct links.&lt;br /&gt;
*We will have to run the project and check for all possible functionality that might get affected because of the refactoring done.&lt;br /&gt;
*For requirement 5, we will have to check if the count of bidding is displayed. It can be viewed at http://152.7.177.6:8080/review_bids/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151060</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151060"/>
		<updated>2023-11-02T17:47:57Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
'''RSpec'''&lt;br /&gt;
*The main task here is to make sure the functionality didn't break due to addition of new code and refactoring the existing code.&lt;br /&gt;
&lt;br /&gt;
*Since the methods in review_bid.rb were changed to instance methods, the corresponding testing files were refactored as well.&lt;br /&gt;
*For requirement 5, since a new attribute was added, we need to test if it is getting properly incremented and decremented.&lt;br /&gt;
*For requirement 6, we need to add a test case to check if the Run Review Algorithm button is enabled to run the algorithm again&lt;br /&gt;
*For requirement 9, a new test case was added in review_bids_helper_spec.rb that tests the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
*More test cases will be added for testing if reviews are being assigned randomly when the student doesn't bid.&lt;br /&gt;
 &lt;br /&gt;
'''Physical Testing'''&lt;br /&gt;
*We will have to run the project and check for all possible functionality that might get affected because of the refactoring done.&lt;br /&gt;
*For requirement 5, we will have to check if the count of bidding is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151059</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151059"/>
		<updated>2023-11-02T17:47:43Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
'''RSpec'''&lt;br /&gt;
*The main task here is to make sure the functionality didn't break due to addition of new code and refactoring the existing code.&lt;br /&gt;
&lt;br /&gt;
*Since the methods in review_bid.rb were changed to instance methods, the corresponding testing files were refactored as well.&lt;br /&gt;
*For requirement 5, since a new attribute was added, we need to test if it is getting properly incremented and decremented.&lt;br /&gt;
*For requirement 6, we need to add a test case to check if the Run Review Algorithm button is enabled to run the algorithm again&lt;br /&gt;
*For requirement 9, a new test case was added in review_bids_helper_spec.rb that tests the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
*More test cases will be added for testing if reviews are being assigned randomly when the student doesn't bid.&lt;br /&gt;
 &lt;br /&gt;
'''Physical Testing'''&lt;br /&gt;
*We will have to run the project and check for all possible functionality that might get affected because of the refactoring done.&lt;br /&gt;
*For requirement 5, we will have to check if the count of bidding is displayed.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151058</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151058"/>
		<updated>2023-11-02T17:46:58Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
RSpec&lt;br /&gt;
The main task here is to make sure the functionality didn't break due to addition of new code and refactoring the existing code.&lt;br /&gt;
&lt;br /&gt;
Since the methods in review_bid.rb were changed to instance methods, the corresponding testing files were refactored as well.&lt;br /&gt;
For requirement 5, since a new attribute was added, we need to test if it is getting properly incremented and decremented.&lt;br /&gt;
For requirement 6, we need to add a test case to check if the Run Review Algorithm button is enabled to run the algorithm again&lt;br /&gt;
For requirement 9, a new test case was added in review_bids_helper_spec.rb that tests the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
More test cases will be added for testing if reviews are being assigned randomly when the student doesn't bid.&lt;br /&gt;
 &lt;br /&gt;
Physical Testing&lt;br /&gt;
We will have to run the project and check for all possible functionality that might get affected because of the refactoring done.&lt;br /&gt;
For requirement 5, we will have to check if the count of bidding is displayed.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151057</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151057"/>
		<updated>2023-11-02T17:46:44Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
RSpec&lt;br /&gt;
The main task here is to make sure the functionality didn't break due to addition of new code and refactoring the existing code.&lt;br /&gt;
&lt;br /&gt;
Since the methods in review_bid.rb were changed to instance methods, the corresponding testing files were refactored as well.&lt;br /&gt;
For requirement 5, since a new attribute was added, we need to test if it is getting properly incremented and decremented.&lt;br /&gt;
For requirement 6, we need to add a test case to check if the Run Review Algorithm button is enabled to run the algorithm again&lt;br /&gt;
For requirement 9, a new test case was added in review_bids_helper_spec.rb that tests the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
More test cases will be added for testing if reviews are being assigned randomly when the student doesn't bid.&lt;br /&gt;
 &lt;br /&gt;
Physical Testing&lt;br /&gt;
We will have to run the project and check for all possible functionality that might get affected because of the refactoring done.&lt;br /&gt;
For requirement 5, we will have to check if the count of bidding is displayed.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151056</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151056"/>
		<updated>2023-11-02T17:46:19Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
The methods in review_bid.rb are to get bidding data, to assign review topics, assign topic to reviewer and for getting individual reviewer_ids bidding data. These all are class methods. All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
&lt;br /&gt;
RSpec&lt;br /&gt;
The main task here is to make sure the functionality didn't break due to addition of new code and refactoring the existing code.&lt;br /&gt;
&lt;br /&gt;
Since the methods in review_bid.rb were changed to instance methods, the corresponding testing files were refactored as well.&lt;br /&gt;
For requirement 5, since a new attribute was added, we need to test if it is getting properly incremented and decremented.&lt;br /&gt;
For requirement 6, we need to add a test case to check if the Run Review Algorithm button is enabled to run the algorithm again&lt;br /&gt;
For requirement 9, a new test case was added in review_bids_helper_spec.rb that tests the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
More test cases will be added for testing if reviews are being assigned randomly when the student doesn't bid.&lt;br /&gt;
 &lt;br /&gt;
Physical Testing&lt;br /&gt;
We will have to run the project and check for all possible functionality that might get affected because of the refactoring done.&lt;br /&gt;
For requirement 5, we will have to check if the count of bidding is displayed.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151043</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=151043"/>
		<updated>2023-11-01T15:44:33Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150984</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150984"/>
		<updated>2023-10-31T03:39:24Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
*https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
*https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
*https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150982</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150982"/>
		<updated>2023-10-31T03:39:00Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Soultions =&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150981</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150981"/>
		<updated>2023-10-31T03:38:38Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Soultions ==&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150979</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150979"/>
		<updated>2023-10-31T03:38:16Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Pull request [https://github.com/expertiza/expertiza/pull/2686]&lt;br /&gt;
* Github repo [https://github.com/amulyausem/expertiza]&lt;br /&gt;
* Deployed server [http://152.7.177.6:8080/]&lt;br /&gt;
 Credentials : username - instructor6 password - password&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Soultions ==&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/expertiza/expertiza/pull/2150&lt;br /&gt;
https://www.youtube.com/watch?v=wxXALQNWFcc&lt;br /&gt;
https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2021_-_E2151._Allow_reviewers_to_bid_on_what_to_review&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150974</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150974"/>
		<updated>2023-10-31T03:32:54Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Soultions ==&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150971</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150971"/>
		<updated>2023-10-31T03:32:18Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
== Soultions ==&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.30 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.17 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.47 PM.png|700px]]&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.18.17_PM.png&amp;diff=150965</id>
		<title>File:Screenshot 2023-10-30 at 11.18.17 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.18.17_PM.png&amp;diff=150965"/>
		<updated>2023-10-31T03:28:12Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.18.30_PM.png&amp;diff=150964</id>
		<title>File:Screenshot 2023-10-30 at 11.18.30 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.18.30_PM.png&amp;diff=150964"/>
		<updated>2023-10-31T03:27:58Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.18.47_PM.png&amp;diff=150962</id>
		<title>File:Screenshot 2023-10-30 at 11.18.47 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.18.47_PM.png&amp;diff=150962"/>
		<updated>2023-10-31T03:27:46Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150956</id>
		<title>CSC/ECE 517 Fall 2023 - E2350. Allow reviewers to bid on what to review</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2350._Allow_reviewers_to_bid_on_what_to_review&amp;diff=150956"/>
		<updated>2023-10-31T03:25:34Z</updated>

		<summary type="html">&lt;p&gt;Ausem: /* Soultions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is for the information regarding the changes made for the E2231 OSS assignment for Spring 2022, CSC/ECE 517.&lt;br /&gt;
= Team =&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* Srilekha Gudipati (sngudipa)&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
* Amulya Usem (ausem)&lt;br /&gt;
* Gowtham Pollam (gpollam)&lt;br /&gt;
* Basaveswara Mukesh Suryadevara (bsuryad)&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Expertiza is a open source project developed on Ruby on Rails.  This web application is maintained by the student and faculty at NC State.  This application gives complete control to the instructor to maintain the assignments in their class.  With multiple functionalities such as adding topics, creating groups, and peer reviews, Expertiza is a well developed application that can handle all types of assignments.  To learn more about the full functionality Expertiza has to offer, visit the Expertiza wiki.&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
Assigning reviews to users is a complicated process. Currently, as per previous year’s implementation on Expertiza’s beta branch, reviews are assigned using the bidding algorithm. Although, the functionality works, but has some bugs which needs to be fixed before we can take it to production. &lt;br /&gt;
&lt;br /&gt;
What needs to be done&lt;br /&gt;
* Review_bids_others_work is a DRY  violation&lt;br /&gt;
* Run_bidding algorithm should be assign_reviewers&lt;br /&gt;
* Currently it doesn't work if some student does not bid. In this case, algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid&lt;br /&gt;
* Figure out why running the bidding algorithm only works on assignment with teams. What  if the assignment does not have a team? Can we tweak the code to make it work in this case?&lt;br /&gt;
* Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive&lt;br /&gt;
* Ability to allow the algorithm to run again after running once.&lt;br /&gt;
* Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers?&lt;br /&gt;
* In the previous implementation wiki, there are edge cases which are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing&lt;br /&gt;
* Test whether the topic changes color depending on the number of outstanding bids&lt;br /&gt;
&lt;br /&gt;
== Soultions ==&lt;br /&gt;
&lt;br /&gt;
=== Review_bids_others_work is a DRY violation ===&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;review_bids_others_work.html.erb&amp;lt;/code&amp;gt; has been refactored in order to resolve DRY violation by removing redundant code without impacting the current functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Run_bidding algorithm should be assign_reviewers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;run_bidding_algorithm&amp;lt;/code&amp;gt; was refactored to &amp;lt;code&amp;gt;assign_reviewers&amp;lt;/code&amp;gt;. Accordingly, all the other instances of this were modified too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sol2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.13.09 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Currently it doesn't work if some student does not bid. In this case, the algorithm needs to be fixed in order to assign arbitrary reviews to anyone who didn’t bid ===&lt;br /&gt;
&lt;br /&gt;
The code was modified to assign random reviews to students in case they didn't bid for any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.18.06 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Figure out why running the bidding algorithm only works on assignments with teams. What if the assignment does not have a team? Can we tweak the code to make it work in this case? ===&lt;br /&gt;
&lt;br /&gt;
Currently, it is mandatory to have a team but we can still make the team be assigned a project even if the team has only one member since there is no settings to place a minimum member cap. Although the member will have to create a team and assign a name so that the member can place a bid.&lt;br /&gt;
&lt;br /&gt;
=== Include a flag to say how many students have submitted their bids, when the students should submit the bid by to make the functionality more intuitive ===&lt;br /&gt;
&lt;br /&gt;
We have included a count variable in &amp;lt;code&amp;gt;assign_bidding&amp;lt;/code&amp;gt; of controller &amp;lt;code&amp;gt;review_bids_controller.rb&amp;lt;/code&amp;gt;. It helps us to keep track of the number of students bidding for reviews and is shown to the users in the view page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.19 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ability to allow the algorithm to run again after running once. ===&lt;br /&gt;
&lt;br /&gt;
Dependency on &amp;lt;code&amp;gt;can_choose_topic_to_review&amp;lt;/code&amp;gt; attribute was removed for the visibility of the button &amp;lt;code&amp;gt;Run Review Algorithm&amp;lt;/code&amp;gt; allowing the user to click and run the algorithm multiple times&lt;br /&gt;
&lt;br /&gt;
=== Why are the methods in review_bid.rb class methods? Can we change them to instance methods or move it to helpers? ===&lt;br /&gt;
&lt;br /&gt;
All the methods in review_bid.rb are converted into instance methods and other occurances were refactored to create an object and then call these methods. &lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-10-30 at 11.17.02 PM.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the previous implementation wiki, there are edge cases that are not exhaustively tested. Should test those edge cases thoroughly and add more edge case testing ===&lt;br /&gt;
&lt;br /&gt;
More test cases for edge scenarios are to be implemented.&lt;br /&gt;
&lt;br /&gt;
=== Test whether the topic changes color depending on the number of outstanding bids ===&lt;br /&gt;
&lt;br /&gt;
A test case was added in &amp;lt;code&amp;gt;review_bids_helper_spec.rb&amp;lt;/code&amp;gt; that test the changes in background color based on the number of participants and outstanding size.&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.17.19_PM.png&amp;diff=150951</id>
		<title>File:Screenshot 2023-10-30 at 11.17.19 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.17.19_PM.png&amp;diff=150951"/>
		<updated>2023-10-31T03:20:30Z</updated>

		<summary type="html">&lt;p&gt;Ausem: Ausem uploaded a new version of File:Screenshot 2023-10-30 at 11.17.19 PM.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.17.02_PM.png&amp;diff=150949</id>
		<title>File:Screenshot 2023-10-30 at 11.17.02 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.17.02_PM.png&amp;diff=150949"/>
		<updated>2023-10-31T03:20:16Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.17.19_PM.png&amp;diff=150946</id>
		<title>File:Screenshot 2023-10-30 at 11.17.19 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-10-30_at_11.17.19_PM.png&amp;diff=150946"/>
		<updated>2023-10-31T03:19:48Z</updated>

		<summary type="html">&lt;p&gt;Ausem: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ausem</name></author>
	</entry>
</feed>