CSC/ECE 517 Fall 2018- Project E1865. Conflict Notification

From Expertiza_Wiki
Jump to navigation Jump to search

Introduction

This project aims to enhance the review mapping of the two conflicting reviews which causes an email to be sent to the instructor when there is a considerable disparity in the grading between two reviews. The goal is to help the instructors by making the process of grading reviews easier and more accurate.

Problem Statement

Issue

Currently, when a new review is submitted and the difference between the score of the new review and (average of the) scores of all previous reviews differ by more than a set threshold, an email is triggered to notify the instructor for such disparity. The email consists of an URL only for the new review.

Application Flow

UML DIAGRAM

Implemented Solution

Issue: Resolving the Conflict Notification

Current scenario: The function 'significant_difference?' in the model response.rb takes on the average scores of all the existing reviews (by looping through each review to calculate the average) and compares it with the score of the recent response. If the difference is greater than the limit specified(notification_limit), it triggers an email to the instructor with the new response’s (conflicting response) URL.


Implemented changes: Instead of taking on the average scores for existing reviews, we will loop through each review not for calculating the average but to compare the new review score with each review score (a new function will be called to compare with existing responses once a new review is in system). If for any response the notification_limit is exceeded, the review URL of that iteration will be stored and at the end of the function once all the reviews are looped an email will be triggered comprising of the URL of a new page "conflict_view.html.erb" which displays the new review and all the previous conflicting reviews..

Files created/changed: 1. response_controller.rb

Added a function "conflict_view" which returns all the IDs of the conflicting reviews.

2. response.rb

Added a function "scores_and_count_for_prev_reviews" which checks the difference between the score of the new review and the score of each of the previous reviews and returns the response IDs of all the reviews whose difference is greater than a set threshold to an function named "significant difference?" which in turn triggers an email to notify the instructor.

3. conflict_view.html.erb

Created a new view to display the new review and all the previous conflicting reviews to the instructor. (File on the github repo: https://github.com/cshinde57/expertiza)

4. routes.rb

Added a route for a newly created "conflict_view" page.

Snapshot for notification email triggered before implementing our changes.

Snapshot for notification email triggered after implementing our changes.

Snapshot for the view which the instructor receives (before implementing our changes)

Snapshot for the view which the instructor receives (after implementing our changes)

Please watch the video provided to have a look on our implementation. Link: https://drive.google.com/drive/folders/1Z8rqRxdmXJYbOZzoptmBLP0kM7Bdul2Q?usp=sharing

Test Plan

1. Rspec file "conflicting_response_spec.rb" is created to check if there is the function significant difference is working and an email is triggered or not.

References

Expertiza

Expertiza Github

Github repo

Expertiza Documentation