From Expertiza_Wiki
Revision as of 20:41, 29 November 2022 by Aramasw (talk | contribs)
Jump to navigation Jump to search

Problem Description

Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The goal of this project is to eliminate issues associated with the "Back" link on "New Late Policy" page by making necessary changes and adding new test cases which cover all scenarios.

Project Scope

Issues with the Current Implementation

The following issues have been raised in the current implementation:

  • Issue 1 - Under the “Due Date” tab when click on the "New late policy" link an error message shows up.

  • Issue 2 - When creating a late policy, the “back” link does not take the user back to editing the assignment.

  • Issue 3 - After creating a late policy, the “back” link does not take the user back to editing the assignment.

Proposed Solution and Files to be refactored

  • Issue 1

Determine why this error message shows up, and fix this error so that it doesn’t occur when clicking on “New Late Policy” in “due date” tab.
1. app/controllers/assignments_controller.rb

  • Issue 2

Check how to store assignment information into session and fix it.
1. app/views/late_policies/new.html.erb
2. app/views/assignments/edit/_due_dates.html.erb
3. app/controllers/assignments_controller.rb

  • Issue 3

Store assignment information in session through the creation of late policies.
1. app/views/late_policies/new.html.erb
2. app/views/assignments/edit/_due_dates.html.erb
3. app/controllers/assignments_controller.rb

Design Principle

Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code.
Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:

  • We are only changing what we set out to change when fixing a particular issue.
  • We are not breaking what was working before we deployed our fix.

Testing

RSpec Unit Tests

Test cases provided here, will add RSpec code blocks for the final submission
Case 1:
Scenario: The instructor is about to create a new late policy.
Given: Logged in as an instructor.
When: The instructor tries to create a new late policy by clicking 'New Late Policy' under the 'Due Dates' tab/
Then: The instructor is redirected to the create/edit policy page without any error message displayed.

Case 2:
Scenario: The instructor is creating a new late policy and tries to go back to the previous page.
Given: Logged in as an instructor and in the 'New Late Policy' page
When: The instructor tries to go to the previous page
And: The instructor clicks the “Back” button.
Then: The instructor is redirected to the previous Due Dates page.

Case 3:
Scenario: The instructor has created a new late policy and tries to go back to the previous page.
Given: Logged in as an instructor.
When: The instructor successfully creates a new late policy, being redirected to the “/late_policies” webpage with all information on late policies.
And: The instructor clicks the “Back” button.
Then: The instructor is redirected to the previous create/edit assignment page.

Manual Testing

  • When logging in as an instructor:

1. Edit an assignment by clicking on edit logo under the “Action” column.
2. Under the “Due Date” tab click on the "New late policy" link.
3. In “New late policy” fill in the required details.
4. Clicks “Create” to save the policy, to go to page which shows all late policies.
5. Clicks “Back” to redirect the instructor back to the “Due Date” tab of the assignment which was being edited.
Or
4. Clicking “Back”, should redirect the instructor back to the “Due Date” tab of the assignment which was being edited.

Important Links

Github Links

Link to Expertiza repository: https://github.com/expertiza/expertiza
Link to the forked repository: https://github.com/NitishKumar2404/Expertiza
Link to Pull Request: https://github.com/expertiza/expertiza/pull/2482

Team

Mentor

Vinay Deshmukh (vdeshmu@ncsu.edu)

Team Members

Kalgee Anand Kotak (kkotak@ncsu.edu)
Ashrita Ramaswamy (aramasw@ncsu.edu)
Nitish Kumar Murali (nmurali2@ncsu.edu)

Retrieved from ""