<?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=Sbuddai</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=Sbuddai"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Sbuddai"/>
	<updated>2026-05-13T08:07:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150128</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150128"/>
		<updated>2023-04-25T02:18:25Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Output */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assignments Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Assignments proj3.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Submissions Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:SubmissionsPage.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grading Histories Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Review Report Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput2.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grading History for Review Report:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryFromReviewReport.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
The test cases are defined to check whether the controller action save_grade_and_comment_for_submission can save the grade and comment for a submission, and then redirect to the grades#view_team page with no errors and to check whether the same controller action can catch an error that might occur when saving the grade and comment for a submission, and then raises that error.&lt;br /&gt;
&lt;br /&gt;
[[File:GradesController.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
This test case is to ensure that the review grades and comments are saved and that the correct page is redirected to after the action is completed.&lt;br /&gt;
&lt;br /&gt;
[[File:Reviewscontroller.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
The create test is checking whether the grading history object can be successfully created with valid parameters. It sets up an instance of the grading_history object using the FactoryBot gem and checks whether the expected values for the attributes of the object are returned.&lt;br /&gt;
&lt;br /&gt;
The index test is checking whether the index action of the controller properly handles requests to show grading histories for a particular participant. It sets up an instance of the instructor object and a session object with the instructor user. It then allows the GradingHistory model to receive a create method call with certain arguments and checks whether a GET request to the index action with the appropriate parameters and session redirects to the correct page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-04-24 a PM.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150127</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150127"/>
		<updated>2023-04-25T02:17:58Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Output */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
&lt;br /&gt;
Assignments Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Assignments proj3.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Submissions Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:SubmissionsPage.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grading Histories Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Review Report Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput2.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grading History for Review Report:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryFromReviewReport.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
The test cases are defined to check whether the controller action save_grade_and_comment_for_submission can save the grade and comment for a submission, and then redirect to the grades#view_team page with no errors and to check whether the same controller action can catch an error that might occur when saving the grade and comment for a submission, and then raises that error.&lt;br /&gt;
&lt;br /&gt;
[[File:GradesController.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
This test case is to ensure that the review grades and comments are saved and that the correct page is redirected to after the action is completed.&lt;br /&gt;
&lt;br /&gt;
[[File:Reviewscontroller.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
The create test is checking whether the grading history object can be successfully created with valid parameters. It sets up an instance of the grading_history object using the FactoryBot gem and checks whether the expected values for the attributes of the object are returned.&lt;br /&gt;
&lt;br /&gt;
The index test is checking whether the index action of the controller properly handles requests to show grading histories for a particular participant. It sets up an instance of the instructor object and a session object with the instructor user. It then allows the GradingHistory model to receive a create method call with certain arguments and checks whether a GET request to the index action with the appropriate parameters and session redirects to the correct page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-04-24 a PM.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150126</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150126"/>
		<updated>2023-04-25T02:16:58Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
&lt;br /&gt;
Assignments Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Assignments.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Submissions Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:SubmissionsPage.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grading Histories Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Review Report Page:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput2.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grading History for Review Report:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryFromReviewReport.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
The test cases are defined to check whether the controller action save_grade_and_comment_for_submission can save the grade and comment for a submission, and then redirect to the grades#view_team page with no errors and to check whether the same controller action can catch an error that might occur when saving the grade and comment for a submission, and then raises that error.&lt;br /&gt;
&lt;br /&gt;
[[File:GradesController.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
This test case is to ensure that the review grades and comments are saved and that the correct page is redirected to after the action is completed.&lt;br /&gt;
&lt;br /&gt;
[[File:Reviewscontroller.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
The create test is checking whether the grading history object can be successfully created with valid parameters. It sets up an instance of the grading_history object using the FactoryBot gem and checks whether the expected values for the attributes of the object are returned.&lt;br /&gt;
&lt;br /&gt;
The index test is checking whether the index action of the controller properly handles requests to show grading histories for a particular participant. It sets up an instance of the instructor object and a session object with the instructor user. It then allows the GradingHistory model to receive a create method call with certain arguments and checks whether a GET request to the index action with the appropriate parameters and session redirects to the correct page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-04-24 a PM.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150125</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150125"/>
		<updated>2023-04-25T02:15:53Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
&lt;br /&gt;
Assignments Page:&lt;br /&gt;
&lt;br /&gt;
[[File:Assignments.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
Submissions Page:&lt;br /&gt;
&lt;br /&gt;
[[File:SubmissionsPage.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
Grading Histories Page:&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
Review Report Page:&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ReviewReportOutput2.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
Grading History for Review Report:&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistoryFromReviewReport.jpeg|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
The test cases are defined to check whether the controller action save_grade_and_comment_for_submission can save the grade and comment for a submission, and then redirect to the grades#view_team page with no errors and to check whether the same controller action can catch an error that might occur when saving the grade and comment for a submission, and then raises that error.&lt;br /&gt;
&lt;br /&gt;
[[File:GradesController.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
This test case is to ensure that the review grades and comments are saved and that the correct page is redirected to after the action is completed.&lt;br /&gt;
&lt;br /&gt;
[[File:Reviewscontroller.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
The create test is checking whether the grading history object can be successfully created with valid parameters. It sets up an instance of the grading_history object using the FactoryBot gem and checks whether the expected values for the attributes of the object are returned.&lt;br /&gt;
&lt;br /&gt;
The index test is checking whether the index action of the controller properly handles requests to show grading histories for a particular participant. It sets up an instance of the instructor object and a session object with the instructor user. It then allows the GradingHistory model to receive a create method call with certain arguments and checks whether a GET request to the index action with the appropriate parameters and session redirects to the correct page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-04-24 a PM.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistoryFromReviewReport.jpeg&amp;diff=150124</id>
		<title>File:GradingHistoryFromReviewReport.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistoryFromReviewReport.jpeg&amp;diff=150124"/>
		<updated>2023-04-25T02:10:30Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReportOutput2.jpeg&amp;diff=150123</id>
		<title>File:ReviewReportOutput2.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReportOutput2.jpeg&amp;diff=150123"/>
		<updated>2023-04-25T02:10:04Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReportOutput.jpeg&amp;diff=150122</id>
		<title>File:ReviewReportOutput.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:ReviewReportOutput.jpeg&amp;diff=150122"/>
		<updated>2023-04-25T02:08:56Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistoryOutput.jpeg&amp;diff=150121</id>
		<title>File:GradingHistoryOutput.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistoryOutput.jpeg&amp;diff=150121"/>
		<updated>2023-04-25T02:08:17Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:SubmissionsPage.jpeg&amp;diff=150120</id>
		<title>File:SubmissionsPage.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:SubmissionsPage.jpeg&amp;diff=150120"/>
		<updated>2023-04-25T02:07:32Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150119</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150119"/>
		<updated>2023-04-25T02:04:16Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
The test cases are defined to check whether the controller action save_grade_and_comment_for_submission can save the grade and comment for a submission, and then redirect to the grades#view_team page with no errors and to check whether the same controller action can catch an error that might occur when saving the grade and comment for a submission, and then raises that error.&lt;br /&gt;
&lt;br /&gt;
[[File:GradesController.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
This test case is to ensure that the review grades and comments are saved and that the correct page is redirected to after the action is completed.&lt;br /&gt;
&lt;br /&gt;
[[File:Reviewscontroller.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
The create test is checking whether the grading history object can be successfully created with valid parameters. It sets up an instance of the grading_history object using the FactoryBot gem and checks whether the expected values for the attributes of the object are returned.&lt;br /&gt;
&lt;br /&gt;
The index test is checking whether the index action of the controller properly handles requests to show grading histories for a particular participant. It sets up an instance of the instructor object and a session object with the instructor user. It then allows the GradingHistory model to receive a create method call with certain arguments and checks whether a GET request to the index action with the appropriate parameters and session redirects to the correct page.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2023-04-24 a PM.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-04-24_a_PM.png&amp;diff=150118</id>
		<title>File:Screenshot 2023-04-24 a PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2023-04-24_a_PM.png&amp;diff=150118"/>
		<updated>2023-04-25T02:01:10Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistoriesTest.png&amp;diff=150117</id>
		<title>File:GradingHistoriesTest.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistoriesTest.png&amp;diff=150117"/>
		<updated>2023-04-25T01:51:18Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignments_proj3.jpeg&amp;diff=150113</id>
		<title>File:Assignments proj3.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Assignments_proj3.jpeg&amp;diff=150113"/>
		<updated>2023-04-25T01:40:13Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150108</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150108"/>
		<updated>2023-04-25T01:27:28Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
The test cases are defined to check whether the controller action save_grade_and_comment_for_submission can save the grade and comment for a submission, and then redirect to the grades#view_team page with no errors and to check whether the same controller action can catch an error that might occur when saving the grade and comment for a submission, and then raises that error.&lt;br /&gt;
&lt;br /&gt;
[[File:GradesController.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
This test case is to ensure that the review grades and comments are saved and that the correct page is redirected to after the action is completed.&lt;br /&gt;
&lt;br /&gt;
[[File:Reviewscontroller.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
The create test is checking whether the grading history object can be successfully created with valid parameters. It sets up an instance of the grading_history object using the FactoryBot gem and checks whether the expected values for the attributes of the object are returned.&lt;br /&gt;
&lt;br /&gt;
The index test is checking whether the index action of the controller properly handles requests to show grading histories for a particular participant. It sets up an instance of the instructor object and a session object with the instructor user. It then allows the GradingHistory model to receive a create method call with certain arguments and checks whether a GET request to the index action with the appropriate parameters and session redirects to the correct page.&lt;br /&gt;
&lt;br /&gt;
[[File:GradingHistories.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Reviewscontroller.png&amp;diff=150107</id>
		<title>File:Reviewscontroller.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Reviewscontroller.png&amp;diff=150107"/>
		<updated>2023-04-25T01:25:50Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:GradesController.png&amp;diff=150106</id>
		<title>File:GradesController.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:GradesController.png&amp;diff=150106"/>
		<updated>2023-04-25T01:24:53Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistories.png&amp;diff=150105</id>
		<title>File:GradingHistories.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:GradingHistories.png&amp;diff=150105"/>
		<updated>2023-04-25T01:23:49Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150104</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=150104"/>
		<updated>2023-04-25T01:04:57Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
The test cases are defined to check whether the controller action save_grade_and_comment_for_submission can save the grade and comment for a submission, and then redirect to the grades#view_team page with no errors and to check whether the same controller action can catch an error that might occur when saving the grade and comment for a submission, and then raises that error.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
This test case is to ensure that the review grades and comments are saved and that the correct page is redirected to after the action is completed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
The create test is checking whether the grading history object can be successfully created with valid parameters. It sets up an instance of the grading_history object using the FactoryBot gem and checks whether the expected values for the attributes of the object are returned.&lt;br /&gt;
&lt;br /&gt;
The index test is checking whether the index action of the controller properly handles requests to show grading histories for a particular participant. It sets up an instance of the instructor object and a session object with the instructor user. It then allows the GradingHistory model to receive a create method call with certain arguments and checks whether a GET request to the index action with the appropriate parameters and session redirects to the correct page.&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149660</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149660"/>
		<updated>2023-04-13T01:24:19Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Flow Diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149659</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149659"/>
		<updated>2023-04-13T01:23:53Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Flow diagram grading.png]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Flow_diagram_grading.png&amp;diff=149658</id>
		<title>File:Flow diagram grading.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Flow_diagram_grading.png&amp;diff=149658"/>
		<updated>2023-04-13T01:23:08Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149632</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149632"/>
		<updated>2023-04-13T00:44:06Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Flow Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:Grading flow diagram.png]]&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Grading_flow_diagram.png&amp;diff=149629</id>
		<title>File:Grading flow diagram.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Grading_flow_diagram.png&amp;diff=149629"/>
		<updated>2023-04-13T00:42:03Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149242</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149242"/>
		<updated>2023-04-08T01:19:22Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Design Strategy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149241</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149241"/>
		<updated>2023-04-08T01:19:01Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Planned Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
7. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.&lt;br /&gt;
&lt;br /&gt;
8. Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=149197</id>
		<title>CSC/ECE 517 Spring 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=149197"/>
		<updated>2023-04-08T00:24:16Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* OSS Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSS Projects ==&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 -E2306. Refactor user_controller.rb, user.rb and its child classes]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2320. Reimplement the Question hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2312 + E2313. Reimplement response.rb and responses_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - NTNX-1. Support provisioning MongoDb via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2316. Reimplement sign_up_sheet_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2315. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2340. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb (Project 4)]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2323. Refactor DueDate functionality from assignment.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2317: Reimplement participant.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2314. Reimplement the response map hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023- NTNX-4. Extend NDB operator provision postregresql aws]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2321. Reimplement QuestionnairesController and QuestionsController]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2305. Grading audit trail]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2309. Refactor Node model and its subclasses]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-2. Support provisioning mySQL databases via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2300. Refactor E1858. Github metrics integration]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Sping 2023 - E2322: Refactor Questionnaire View to display Bookmark Rating]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - NTNX-3. Refactor models to keep profiles (software, compute, network, etc) as optional and use default if not specified]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2301._Refactor_review_maping_helper]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2337._Reimplement_node_hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-E2339._Reimplement signed_up_teams_controller and sign_up_topics_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023_-_E2320._Reimplement the Question Hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE_517_Spring_2023 - E2341. UI for Participants.rb]]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149194</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149194"/>
		<updated>2023-04-08T00:22:58Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Planned Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
===1. Improving the separation of concerns===&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
===2. Cleaning up the grading audit trail code===&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
===3. Make the grading audit trail feature read-only===&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
===4. Display history in reverse chronological order===&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
===5. CSS - Change px to %===&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149192</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149192"/>
		<updated>2023-04-08T00:17:16Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149190</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149190"/>
		<updated>2023-04-08T00:09:05Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.The review report error is fixed which wasn't previously generated due some issue. 'Grading_history' table is created and added to database. GUI has been enhanced to ensure compatibility and smooth functioning with the latest version of Expertiza.Included comprehensive test cases and comments for thorough testing and documentation purposes.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
== Design Strategy ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned Work ==&lt;br /&gt;
&lt;br /&gt;
1. Improving the separation of concerns&lt;br /&gt;
&lt;br /&gt;
The goal here is to move the code snippet from views, which contains some business logic for displaying grading history data, out of the view file and into the controller.&lt;br /&gt;
For example, we could find business logic in “app/views/grading_histories/index.html.erb”. To fix this, In the controller action that renders the index.html.erb view, we retrieve the @grading_histories collection and process it to extract the relevant data needed to display on the view. We create a new instance variable, say @grading_history_info, and assign it a hash object containing the extracted data. Then, pass this @grading_history_info variable to the view as part of the render call, so that it's available to the view template. In the index.html.erb view, replace the business logic code snippet with code that accesses the relevant data from the @grading_history_info hash and uses it to populate the view.&lt;br /&gt;
By doing this, you have effectively separated the business logic from the view, making it easier to maintain and test each component independently.&lt;br /&gt;
Some of the potential benefits of this approach include:&lt;br /&gt;
•	Improved readability and maintainability of the view code, since it no longer contains complex business logic.&lt;br /&gt;
•	Improved testability of the business logic code, since it can be tested in isolation from the view.&lt;br /&gt;
•	Reduced coupling between the view and the controller, since the controller now provides the view with the data it needs, rather than the view fetching it directly from the database.&lt;br /&gt;
&lt;br /&gt;
2. Cleaning up the grading audit trail code&lt;br /&gt;
&lt;br /&gt;
Some examples of the types of code that might be redundant or unnecessary code in a project are:&lt;br /&gt;
•	Commented-out code that is no longer needed&lt;br /&gt;
•	Unused variables or functions&lt;br /&gt;
•	Code that's been duplicated or replaced by newer code&lt;br /&gt;
•	Code that's no longer being executed or has been deprecated&lt;br /&gt;
•	Code that's no longer compatible with the current system configuration or dependencies&lt;br /&gt;
By cleaning up redundant or unnecessary code, we can make the project codebase more efficient, easier to maintain, and less error-prone.&lt;br /&gt;
&lt;br /&gt;
3. Make the grading audit trail feature read-only&lt;br /&gt;
&lt;br /&gt;
When a grade is assigned by an instructor, the grading audit trail shows who did it and when it was done. It also includes comments previously provided by other instructors. This information will be stored every time an instructor edits a grade/comment and clicks the save button.&lt;br /&gt;
By making the grading audit trail read-only, you can help ensure the integrity of the grading history and record any changes to grades or comments. This can be particularly important in academic settings, where grading data must be accurate and reliable for record-keeping purposes.&lt;br /&gt;
&lt;br /&gt;
4. Display history in reverse chronological order&lt;br /&gt;
&lt;br /&gt;
The proposed design change aims to modify the grading audit trail feature to display the grading history in reverse chronological order, with the most recent entries appearing first.&lt;br /&gt;
By displaying the grading audit trail in reverse chronological order, instructors can quickly and easily see the most recent changes made to a student's submission, without having to scroll through potentially large amounts of data. This can be particularly useful for identifying recent trends or patterns in a student's work, or for quickly reviewing recent changes made by multiple instructors.&lt;br /&gt;
This change can also improve the usability of the feature, as users will be able to quickly find the information, they need without having to manually sort or filter the data themselves.&lt;br /&gt;
&lt;br /&gt;
5. CSS - Change px to %&lt;br /&gt;
&lt;br /&gt;
Change the CSS properties like border-width from px units to a percentage value that fits your design needs. For example, you could use 0.1em or 0.5%. This will make the border scale proportionally to the size of the container.&lt;br /&gt;
Avoid using fixed width or height values in your CSS code. Instead, use relative values such as percentages or em units to allow your design to adapt to different screen sizes and resolutions. For example, if you want to set the width of the container to 80% of the screen width, you can use width: 80%;.&lt;br /&gt;
We can also consider using CSS Grid or Flexbox to create layouts that are more flexible and adaptable. These layout systems allow us to create complex designs that can adapt to different screen sizes and resolutions without the need for fixed width or height values.&lt;br /&gt;
&lt;br /&gt;
6. Fixture of grading history button in review report&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;br /&gt;
&lt;br /&gt;
[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149141</id>
		<title>CSC/ECE 517 Spring 2023 - E2329. Grading audit trail(Project 4)</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2329._Grading_audit_trail(Project_4)&amp;diff=149141"/>
		<updated>2023-04-07T21:44:35Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: Created page with &amp;quot;== Team Introduction ==  === Team Members ===  Sarika Vishwanatham (svishwa2@ncsu.edu)  Chetana Chunduru (cchetan2@ncsu.edu)  Shreya Buddaiahgari (sbuddai@ncsu.edu)  === Mento...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=yyxX_kRYxLc&lt;br /&gt;
&lt;br /&gt;
== General Design Plan ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Review report was not generated previously due to an error, the issue fixture is taken care.&lt;br /&gt;
&lt;br /&gt;
2. The table which was previously added to the database was not visible, now the table is added again ('''grading_history''')&lt;br /&gt;
&lt;br /&gt;
2. To correct build errors, manually cherry-pick and refine the changes from earlier iterations.&lt;br /&gt;
&lt;br /&gt;
3. Make GUI clean so that it works well with the most recent Expertiza.&lt;br /&gt;
&lt;br /&gt;
4. Provide test cases and comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned and Completed Work ==&lt;br /&gt;
&lt;br /&gt;
=== General Design Goals ===&lt;br /&gt;
====Changes to the Grading History Table====&lt;br /&gt;
&lt;br /&gt;
The images below reference grading history view issues mentioned above in the ''Problem Statement''.&lt;br /&gt;
&lt;br /&gt;
To DRY the code, we will remove the redundant table data boxed below...&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; ...and we'll move it to the page header:&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Behavior Driven Development'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[CSC/ECE 517 Spring 2022 - E2237: Grading audit trail#RSpec Unit Tests|BDD Scenarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
Due to the nature of the functionalities that we will be implementing, we will be following a BDD methodology - Our primary intention with this is to focus our refactoring, development and database design efforts to ensure that end-user functionality is implemented fully.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to demonstrate this, we have provided our tests ahead of time and will be using them to guide our development efforts.&lt;br /&gt;
&lt;br /&gt;
====System Stability: Strategies====&lt;br /&gt;
''The source of crashing issues is currently unknown.'' To debug this, we will pursue the following:&lt;br /&gt;
* Refactor the specs and controllers&lt;br /&gt;
** Ensure DRY principle is followed&lt;br /&gt;
** Improve readability and maintainability&lt;br /&gt;
** Add code comments as needed &lt;br /&gt;
* Ensure testing objects do not cause crashes&lt;br /&gt;
&lt;br /&gt;
====Documentation====&lt;br /&gt;
&lt;br /&gt;
# Changes to any files will be documented on this page; the programmatically reasoning behind the changes shall be explained, and will be in accordance with the DRY principle.&lt;br /&gt;
# Any changes to the overall program logic and data flow will be illustrated with UML diagrams in this document, along with the reasoning for any such changes.&lt;br /&gt;
# A pull request of the fixed code, fully commented, will be provided in this document.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Screencast]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148692</id>
		<title>CSC/ECE 517 Spring 2023 - E2305. Grading audit trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148692"/>
		<updated>2023-03-29T07:35:26Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=yyxX_kRYxLc&lt;br /&gt;
&lt;br /&gt;
== General Design Plan ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Review report was not generated previously due to an error, the issue fixture is taken care.&lt;br /&gt;
&lt;br /&gt;
2. The table which was previously added to the database was not visible, now the table is added again ('''grading_history''')&lt;br /&gt;
&lt;br /&gt;
2. To correct build errors, manually cherry-pick and refine the changes from earlier iterations.&lt;br /&gt;
&lt;br /&gt;
3. Make GUI clean so that it works well with the most recent Expertiza.&lt;br /&gt;
&lt;br /&gt;
4. Provide test cases and comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned and Completed Work ==&lt;br /&gt;
&lt;br /&gt;
=== General Design Goals ===&lt;br /&gt;
====Changes to the Grading History Table====&lt;br /&gt;
&lt;br /&gt;
The images below reference grading history view issues mentioned above in the ''Problem Statement''.&lt;br /&gt;
&lt;br /&gt;
To DRY the code, we will remove the redundant table data boxed below...&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; ...and we'll move it to the page header:&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Behavior Driven Development'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[CSC/ECE 517 Spring 2022 - E2237: Grading audit trail#RSpec Unit Tests|BDD Scenarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
Due to the nature of the functionalities that we will be implementing, we will be following a BDD methodology - Our primary intention with this is to focus our refactoring, development and database design efforts to ensure that end-user functionality is implemented fully.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to demonstrate this, we have provided our tests ahead of time and will be using them to guide our development efforts.&lt;br /&gt;
&lt;br /&gt;
====System Stability: Strategies====&lt;br /&gt;
''The source of crashing issues is currently unknown.'' To debug this, we will pursue the following:&lt;br /&gt;
* Refactor the specs and controllers&lt;br /&gt;
** Ensure DRY principle is followed&lt;br /&gt;
** Improve readability and maintainability&lt;br /&gt;
** Add code comments as needed &lt;br /&gt;
* Ensure testing objects do not cause crashes&lt;br /&gt;
&lt;br /&gt;
====Documentation====&lt;br /&gt;
&lt;br /&gt;
# Changes to any files will be documented on this page; the programmatically reasoning behind the changes shall be explained, and will be in accordance with the DRY principle.&lt;br /&gt;
# Any changes to the overall program logic and data flow will be illustrated with UML diagrams in this document, along with the reasoning for any such changes.&lt;br /&gt;
# A pull request of the fixed code, fully commented, will be provided in this document.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Files added ===&lt;br /&gt;
&lt;br /&gt;
1. grading_history table is created &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM.jpeg]]&lt;br /&gt;
&lt;br /&gt;
=== Files Modified ===&lt;br /&gt;
&lt;br /&gt;
*app/config/routes.rb &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (2).jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (3).jpeg]]&lt;br /&gt;
&lt;br /&gt;
*app/controllers/review_mapping_controller.rb &lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
     Creates a Grading History Record for every Review grade edited by the instructor for a Student.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/assignments/list_submissions.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/reports/_review_report.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Expected View ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.46.59 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 8.54.40 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.45.43 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.43.59 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Plan ==&lt;br /&gt;
&lt;br /&gt;
Functional testing:&lt;br /&gt;
&lt;br /&gt;
1. Test SubmissionGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/grades_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Test ReviewGradeHistory.create: call a submission grade when changed. &lt;br /&gt;
   spec/controllers/review_mapping_controller_spec.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Test GradeHistory.where: called when grading history button is clicked.&lt;br /&gt;
   spec/controllers/grading_histories_controller_test.rb&lt;br /&gt;
&lt;br /&gt;
Feature Testing:&lt;br /&gt;
&lt;br /&gt;
1. Test the grading history: visible and shown in chronological order?&lt;br /&gt;
   spec/features/grade_histories_spec.rb&lt;br /&gt;
   spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Screencast]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148324</id>
		<title>CSC/ECE 517 Spring 2023 - E2305. Grading audit trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148324"/>
		<updated>2023-03-25T20:56:42Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: /* Team Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Members ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=yyxX_kRYxLc&lt;br /&gt;
&lt;br /&gt;
== General Design Plan ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Review report was not generated previously due to an error, the issue fixture is taken care.&lt;br /&gt;
&lt;br /&gt;
2. The table which was previously added to the database was not visible, now the table is added again ('''grading_history''')&lt;br /&gt;
&lt;br /&gt;
2. To correct build errors, manually cherry-pick and refine the changes from earlier iterations.&lt;br /&gt;
&lt;br /&gt;
3. Make GUI clean so that it works well with the most recent Expertiza.&lt;br /&gt;
&lt;br /&gt;
4. Provide test cases and comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned and Completed Work ==&lt;br /&gt;
&lt;br /&gt;
=== General Design Goals ===&lt;br /&gt;
====Changes to the Grading History Table====&lt;br /&gt;
&lt;br /&gt;
The images below reference grading history view issues mentioned above in the ''Problem Statement''.&lt;br /&gt;
&lt;br /&gt;
To DRY the code, we will remove the redundant table data boxed below...&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; ...and we'll move it to the page header:&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Behavior Driven Development'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[CSC/ECE 517 Spring 2022 - E2237: Grading audit trail#RSpec Unit Tests|BDD Scenarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
Due to the nature of the functionalities that we will be implementing, we will be following a BDD methodology - Our primary intention with this is to focus our refactoring, development and database design efforts to ensure that end-user functionality is implemented fully.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to demonstrate this, we have provided our tests ahead of time and will be using them to guide our development efforts.&lt;br /&gt;
&lt;br /&gt;
====System Stability: Strategies====&lt;br /&gt;
''The source of crashing issues is currently unknown.'' To debug this, we will pursue the following:&lt;br /&gt;
* Refactor the specs and controllers&lt;br /&gt;
** Ensure DRY principle is followed&lt;br /&gt;
** Improve readability and maintainability&lt;br /&gt;
** Add code comments as needed &lt;br /&gt;
* Ensure testing objects do not cause crashes&lt;br /&gt;
&lt;br /&gt;
====Documentation====&lt;br /&gt;
&lt;br /&gt;
# Changes to any files will be documented on this page; the programmatically reasoning behind the changes shall be explained, and will be in accordance with the DRY principle.&lt;br /&gt;
# Any changes to the overall program logic and data flow will be illustrated with UML diagrams in this document, along with the reasoning for any such changes.&lt;br /&gt;
# A pull request of the fixed code, fully commented, will be provided in this document.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Files added ===&lt;br /&gt;
&lt;br /&gt;
1. grading_history table is created &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM.jpeg]]&lt;br /&gt;
&lt;br /&gt;
=== Files Modified ===&lt;br /&gt;
&lt;br /&gt;
*app/config/routes.rb &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (2).jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (3).jpeg]]&lt;br /&gt;
&lt;br /&gt;
*app/controllers/review_mapping_controller.rb &lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
     Creates a Grading History Record for every Review grade edited by the instructor for a Student.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/assignments/list_submissions.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/reports/_review_report.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Expected View ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.46.59 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 8.54.40 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.45.43 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.43.59 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Screencast]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148323</id>
		<title>CSC/ECE 517 Spring 2023 - E2305. Grading audit trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148323"/>
		<updated>2023-03-25T20:56:22Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Member ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=yyxX_kRYxLc&lt;br /&gt;
&lt;br /&gt;
== General Design Plan ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Review report was not generated previously due to an error, the issue fixture is taken care.&lt;br /&gt;
&lt;br /&gt;
2. The table which was previously added to the database was not visible, now the table is added again ('''grading_history''')&lt;br /&gt;
&lt;br /&gt;
2. To correct build errors, manually cherry-pick and refine the changes from earlier iterations.&lt;br /&gt;
&lt;br /&gt;
3. Make GUI clean so that it works well with the most recent Expertiza.&lt;br /&gt;
&lt;br /&gt;
4. Provide test cases and comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned and Completed Work ==&lt;br /&gt;
&lt;br /&gt;
=== General Design Goals ===&lt;br /&gt;
====Changes to the Grading History Table====&lt;br /&gt;
&lt;br /&gt;
The images below reference grading history view issues mentioned above in the ''Problem Statement''.&lt;br /&gt;
&lt;br /&gt;
To DRY the code, we will remove the redundant table data boxed below...&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; ...and we'll move it to the page header:&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Behavior Driven Development'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[CSC/ECE 517 Spring 2022 - E2237: Grading audit trail#RSpec Unit Tests|BDD Scenarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
Due to the nature of the functionalities that we will be implementing, we will be following a BDD methodology - Our primary intention with this is to focus our refactoring, development and database design efforts to ensure that end-user functionality is implemented fully.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to demonstrate this, we have provided our tests ahead of time and will be using them to guide our development efforts.&lt;br /&gt;
&lt;br /&gt;
====System Stability: Strategies====&lt;br /&gt;
''The source of crashing issues is currently unknown.'' To debug this, we will pursue the following:&lt;br /&gt;
* Refactor the specs and controllers&lt;br /&gt;
** Ensure DRY principle is followed&lt;br /&gt;
** Improve readability and maintainability&lt;br /&gt;
** Add code comments as needed &lt;br /&gt;
* Ensure testing objects do not cause crashes&lt;br /&gt;
&lt;br /&gt;
====Documentation====&lt;br /&gt;
&lt;br /&gt;
# Changes to any files will be documented on this page; the programmatically reasoning behind the changes shall be explained, and will be in accordance with the DRY principle.&lt;br /&gt;
# Any changes to the overall program logic and data flow will be illustrated with UML diagrams in this document, along with the reasoning for any such changes.&lt;br /&gt;
# A pull request of the fixed code, fully commented, will be provided in this document.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Files added ===&lt;br /&gt;
&lt;br /&gt;
1. grading_history table is created &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM.jpeg]]&lt;br /&gt;
&lt;br /&gt;
=== Files Modified ===&lt;br /&gt;
&lt;br /&gt;
*app/config/routes.rb &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (2).jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (3).jpeg]]&lt;br /&gt;
&lt;br /&gt;
*app/controllers/review_mapping_controller.rb &lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
     Creates a Grading History Record for every Review grade edited by the instructor for a Student.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/assignments/list_submissions.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/reports/_review_report.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Expected View ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.46.59 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 8.54.40 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.45.43 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WhatsApp Image 2023-03-23 at 7.43.59 PM.jpeg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
[https://expertiza.ncsu.edu/ Expertiza]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/CSC/E1869_GRADING_AUDIT_TRAIL Previous Project Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/yyxX_kRYxLc Screencast]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza_wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation Expertiza Documentation]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza Github]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_7.43.59_PM.jpeg&amp;diff=148322</id>
		<title>File:WhatsApp Image 2023-03-23 at 7.43.59 PM.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_7.43.59_PM.jpeg&amp;diff=148322"/>
		<updated>2023-03-25T20:55:48Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: summary report&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;summary report&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_7.45.43_PM.jpeg&amp;diff=148321</id>
		<title>File:WhatsApp Image 2023-03-23 at 7.45.43 PM.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_7.45.43_PM.jpeg&amp;diff=148321"/>
		<updated>2023-03-25T20:55:16Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: review report&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;review report&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_8.54.40_PM.jpeg&amp;diff=148320</id>
		<title>File:WhatsApp Image 2023-03-23 at 8.54.40 PM.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_8.54.40_PM.jpeg&amp;diff=148320"/>
		<updated>2023-03-25T20:54:52Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: submission record&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;submission record&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_7.46.59_PM.jpeg&amp;diff=148319</id>
		<title>File:WhatsApp Image 2023-03-23 at 7.46.59 PM.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-23_at_7.46.59_PM.jpeg&amp;diff=148319"/>
		<updated>2023-03-25T20:54:17Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: Grading history&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grading history&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148318</id>
		<title>CSC/ECE 517 Spring 2023 - E2305. Grading audit trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148318"/>
		<updated>2023-03-25T20:50:56Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Member ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=yyxX_kRYxLc&lt;br /&gt;
&lt;br /&gt;
== General Design Plan ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Review report was not generated previously due to an error, the issue fixture is taken care.&lt;br /&gt;
&lt;br /&gt;
2. The table which was previously added to the database was not visible, now the table is added again ('''grading_history''')&lt;br /&gt;
&lt;br /&gt;
2. To correct build errors, manually cherry-pick and refine the changes from earlier iterations.&lt;br /&gt;
&lt;br /&gt;
3. Make GUI clean so that it works well with the most recent Expertiza.&lt;br /&gt;
&lt;br /&gt;
4. Provide test cases and comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned and Completed Work ==&lt;br /&gt;
&lt;br /&gt;
=== General Design Goals ===&lt;br /&gt;
====Changes to the Grading History Table====&lt;br /&gt;
&lt;br /&gt;
The images below reference grading history view issues mentioned above in the ''Problem Statement''.&lt;br /&gt;
&lt;br /&gt;
To DRY the code, we will remove the redundant table data boxed below...&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; ...and we'll move it to the page header:&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Behavior Driven Development'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[CSC/ECE 517 Spring 2022 - E2237: Grading audit trail#RSpec Unit Tests|BDD Scenarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
Due to the nature of the functionalities that we will be implementing, we will be following a BDD methodology - Our primary intention with this is to focus our refactoring, development and database design efforts to ensure that end-user functionality is implemented fully.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to demonstrate this, we have provided our tests ahead of time and will be using them to guide our development efforts.&lt;br /&gt;
&lt;br /&gt;
====System Stability: Strategies====&lt;br /&gt;
''The source of crashing issues is currently unknown.'' To debug this, we will pursue the following:&lt;br /&gt;
* Refactor the specs and controllers&lt;br /&gt;
** Ensure DRY principle is followed&lt;br /&gt;
** Improve readability and maintainability&lt;br /&gt;
** Add code comments as needed &lt;br /&gt;
* Ensure testing objects do not cause crashes&lt;br /&gt;
&lt;br /&gt;
====Documentation====&lt;br /&gt;
# Changes to any files will be documented on this page; the programmatical reasoning behind the changes shall be explained, and will be in accordance with the DRY principle.&lt;br /&gt;
# Any changes to the overall program logic and data flow will be illustrated with UML diagrams in this document, along with the reasoning for any such changes.&lt;br /&gt;
# A pull request of the fixed code, fully commented, will be provided in this document.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Files added ===&lt;br /&gt;
&lt;br /&gt;
1. grading_history table is created &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM.jpeg]]&lt;br /&gt;
&lt;br /&gt;
=== Files Modified ===&lt;br /&gt;
&lt;br /&gt;
*app/config/routes.rb &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (2).jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM (3).jpeg]]&lt;br /&gt;
&lt;br /&gt;
*app/controllers/grades_controller.rb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*app/controllers/review_mapping_controller.rb &lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
     Creates a Grading History Record for every Review grade edited by the instructor for a Student.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/assignments/list_submissions.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
* app/views/reports/_review_report.html.erb &lt;br /&gt;
'''&lt;br /&gt;
     Add code to support view changes for Grade Record&lt;br /&gt;
'''&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-25_at_4.29.57_PM_(3).jpeg&amp;diff=148317</id>
		<title>File:WhatsApp Image 2023-03-25 at 4.29.57 PM (3).jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-25_at_4.29.57_PM_(3).jpeg&amp;diff=148317"/>
		<updated>2023-03-25T20:48:50Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: config file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;config file&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-25_at_4.29.57_PM_(2).jpeg&amp;diff=148316</id>
		<title>File:WhatsApp Image 2023-03-25 at 4.29.57 PM (2).jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-25_at_4.29.57_PM_(2).jpeg&amp;diff=148316"/>
		<updated>2023-03-25T20:48:05Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: config file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;config file&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148315</id>
		<title>CSC/ECE 517 Spring 2023 - E2305. Grading audit trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=148315"/>
		<updated>2023-03-25T20:43:02Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Member ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
&lt;br /&gt;
In the system, the team built a database called grading history that includes information about the instructor, the assignment, the grade type, the student, the grade, the comment, and the timestamp.&lt;br /&gt;
&lt;br /&gt;
They developed a model, a controller, and a view for the &amp;quot;Review Grade&amp;quot; and the &amp;quot;Submission Grade&amp;quot; using the MVC design.&lt;br /&gt;
&lt;br /&gt;
:Model - grading history.rb has a set of properties that includes the following: timestamp, comment, grade type, instructor ID, and assignment ID.&lt;br /&gt;
&lt;br /&gt;
:Controller - grading history controller.rb. E ach time a review grade or submission grade is saved, a new entry is added to the database&lt;br /&gt;
&lt;br /&gt;
:View - index_html.erb.shows the grade history for the current submission or review. A submission record in the system is an existent illustration of this.&lt;br /&gt;
&lt;br /&gt;
Also, they changed the grades controller so that grading history controller.rb will call a function to produce an entry that is saved to the database each time a grade is submitted or amended.&lt;br /&gt;
&lt;br /&gt;
=== Files Modified By Previous Team ===&lt;br /&gt;
* \app\controllers\grades_controller.rb&lt;br /&gt;
* \app\controllers\grading_histories_controller.rb&lt;br /&gt;
* \app\controllers\review_mapping_controller.rb&lt;br /&gt;
* \app\helpers\grading_histories_helper.rb&lt;br /&gt;
* \app\models\grading_history.rb&lt;br /&gt;
* \app\models\review_grading_history.rb&lt;br /&gt;
* \app\models\submission_grading_history.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
* \app\views\grading_histories\index.html.erb&lt;br /&gt;
* \app\views\reports\_review_report.html.erb&lt;br /&gt;
* \config\routes.rb&lt;br /&gt;
* \app\views\assignments\list_submissions.html.erb&lt;br /&gt;
&lt;br /&gt;
=== Testing By Previous Team ===&lt;br /&gt;
&lt;br /&gt;
''Functional tests'' were added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functional tests added to these files&lt;br /&gt;
: spec/controllers/review_mapping_controller_spec.rb&lt;br /&gt;
: spec/models/grading_history.rb&lt;br /&gt;
: spec/controllers/grading_history_controller.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A ''feature test'' ensuring that a submission's grading history is shown completely, and in chronological order, was added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
feature test handled by these two files&lt;br /&gt;
: spec/features/grade_histories_spec.rb&lt;br /&gt;
: spec/features/helpers/grade_histories_helper.rb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Issues with Existing Tests ====&lt;br /&gt;
Only review_mapping_controller_spec.rb runs successfully--'''every other spec file mentioned above crashes'''.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=yyxX_kRYxLc&lt;br /&gt;
&lt;br /&gt;
== General Design Plan ==&lt;br /&gt;
&lt;br /&gt;
Although the project is four years old and the merge requests were never merged, the earlier revisions of the project fully satisfied all of the functional requirements of the &amp;quot;grading audit trail&amp;quot; feature. As a result, the changes are obsolete and interfere with the newest Expertiza's ability to create.&lt;br /&gt;
&lt;br /&gt;
1. Review report was not generated previously due to an error, the issue fixture is taken care.&lt;br /&gt;
&lt;br /&gt;
2. The table which was previously added to the database was not visible, now the table is added again ('''grading_history''')&lt;br /&gt;
&lt;br /&gt;
2. To correct build errors, manually cherry-pick and refine the changes from earlier iterations.&lt;br /&gt;
&lt;br /&gt;
3. Make GUI clean so that it works well with the most recent Expertiza.&lt;br /&gt;
&lt;br /&gt;
4. Provide test cases and comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planned and Completed Work ==&lt;br /&gt;
&lt;br /&gt;
=== General Design Goals ===&lt;br /&gt;
====Changes to the Grading History Table====&lt;br /&gt;
&lt;br /&gt;
The images below reference grading history view issues mentioned above in the ''Problem Statement''.&lt;br /&gt;
&lt;br /&gt;
To DRY the code, we will remove the redundant table data boxed below...&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; ...and we'll move it to the page header:&lt;br /&gt;
&lt;br /&gt;
[[File:E2237_Proj4_2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Behavior Driven Development'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[CSC/ECE 517 Spring 2022 - E2237: Grading audit trail#RSpec Unit Tests|BDD Scenarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
Due to the nature of the functionalities that we will be implementing, we will be following a BDD methodology - Our primary intention with this is to focus our refactoring, development and database design efforts to ensure that end-user functionality is implemented fully.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to demonstrate this, we have provided our tests ahead of time and will be using them to guide our development efforts.&lt;br /&gt;
&lt;br /&gt;
====System Stability: Strategies====&lt;br /&gt;
''The source of crashing issues is currently unknown.'' To debug this, we will pursue the following:&lt;br /&gt;
* Refactor the specs and controllers&lt;br /&gt;
** Ensure DRY principle is followed&lt;br /&gt;
** Improve readability and maintainability&lt;br /&gt;
** Add code comments as needed &lt;br /&gt;
* Ensure testing objects do not cause crashes&lt;br /&gt;
&lt;br /&gt;
====Documentation====&lt;br /&gt;
# Changes to any files will be documented on this page; the programmatical reasoning behind the changes shall be explained, and will be in accordance with the DRY principle.&lt;br /&gt;
# Any changes to the overall program logic and data flow will be illustrated with UML diagrams in this document, along with the reasoning for any such changes.&lt;br /&gt;
# A pull request of the fixed code, fully commented, will be provided in this document.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Files added ===&lt;br /&gt;
&lt;br /&gt;
1. grading_history table is created &lt;br /&gt;
&lt;br /&gt;
[[File:WhatsApp Image 2023-03-25 at 4.29.57 PM.jpeg]]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-25_at_4.29.57_PM.jpeg&amp;diff=148314</id>
		<title>File:WhatsApp Image 2023-03-25 at 4.29.57 PM.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:WhatsApp_Image_2023-03-25_at_4.29.57_PM.jpeg&amp;diff=148314"/>
		<updated>2023-03-25T20:42:23Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: Grading history table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grading history table&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=147927</id>
		<title>CSC/ECE 517 Spring 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023&amp;diff=147927"/>
		<updated>2023-03-22T20:51:32Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSS Projects ==&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 -E2306. Refactor user_controller.rb, user.rb and its child classes]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2320. Reimplement the Question hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2312 + E2313. Reimplement response.rb and responses_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - NTNX-1. Support provisioning MongoDb via NDB Kubernetes Operator]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2316. Reimplement sign_up_sheet_controller.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2315. Reimplement signed_up_team.rb, sign_up_topic.rb, sign_up_sheet.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring_2023 - E2323. Refactor DueDate functionality from assignment.rb]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2314. Reimplement the response map hierarchy]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023- NTNX-4. Extend NDB operator provision postregresql aws]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2321. Reimplement QuestionnairesController and QuestionsController]]&lt;br /&gt;
&lt;br /&gt;
[[CSC/ECE 517 Spring 2023 - E2305. Grading audit trail]]&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=147926</id>
		<title>CSC/ECE 517 Spring 2023 - E2305. Grading audit trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=147926"/>
		<updated>2023-03-22T20:50:27Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Team Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Team Member ===&lt;br /&gt;
&lt;br /&gt;
Sarika Vishwanatham (svishwa2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Chetana Chunduru (cchetan2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
Shreya Buddaiahgari (sbuddai@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
&lt;br /&gt;
Krishna Saurabh Vankadaru (kvankad@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
There is no way to determine who graded an assignment after the instructor awarded it a grade. The following data must be recorded and kept in a grading audit trail:&lt;br /&gt;
&lt;br /&gt;
1. The identity of the person who assigned the grade and the time it was completed must be stated.&lt;br /&gt;
&lt;br /&gt;
2. Previous feedback from other instructors must also be kept.&lt;br /&gt;
Every time an instructor modifies a grade or comment and presses the save button, this data must be saved.&lt;br /&gt;
&lt;br /&gt;
There are now two places where grading audit trails need to be added:&lt;br /&gt;
&lt;br /&gt;
1. Check your grade: Log in as the instructor, click Manage, then click Assignments. Review Report View&lt;br /&gt;
&lt;br /&gt;
2. Log in as the instructor and select Manage from the Assignments menu. Check out the entries&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=147909</id>
		<title>CSC/ECE 517 Spring 2023 - E2305. Grading audit trail</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2023_-_E2305._Grading_audit_trail&amp;diff=147909"/>
		<updated>2023-03-22T19:59:17Z</updated>

		<summary type="html">&lt;p&gt;Sbuddai: CSC/ECE 517 Spring 2023 - E2305. Grading audit trail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Spring 2023 - E2305. Grading audit trail&lt;/div&gt;</summary>
		<author><name>Sbuddai</name></author>
	</entry>
</feed>