CSE/ECE 517 Spring 2021 - E2104. Email notification to reviewers and instructors: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Created page with "This page provides a description of the Expertiza based OSS project. __TOC__ ==About Expertiza== [http://expertiza.ncsu.edu/ Expertiza] is an open-source project developed u...")
 
 
Line 28: Line 28:
==Testing==
==Testing==


We have used Rspec for testing the delayed_job functionalities. Using the test-driven development(TDD) approach, we have added a Rspec test which checks whether the mail is enqueued upon the firing of the reminder method.
We have used Rspec for testing the delayed_job functionalities. Using the test-driven development (TDD) approach, we have added a Rspec test which checks whether the mail is enqueued upon the firing of the reminder method.


We have used Rspec for testing the delayed_job functionalities. Using the test-driven development(TDD) approach, we have added a Rspec test which checks whether the call for reminder method is enqueued upon the firing of the start_reminder method, with the proper scheduled execution time.
We have used Rspec for testing the delayed_job functionalities. Using the test-driven development (TDD) approach, we have added a Rspec test which checks whether the call for reminder method is enqueued upon the firing of the start_reminder method, with the proper scheduled execution time.


      
      

Latest revision as of 14:07, 5 April 2021

This page provides a description of the Expertiza based OSS project.

About Expertiza

Expertiza is an open-source project developed using the Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. The application allows students to submit and peer-review learning objects (articles, code, websites, etc)[1]. Expertiza supports submission across various document types, including the URLs and wiki pages.

Problem Statement

  • When an assignment or review approaches its deadline on Expertiza, students initially should receive deadline reminder emails at a specific time before the deadline that the instructor has preconfigured. Lack of this functionality sometimes results in students missing their assignment submission deadlines and thus losing marks. Students should receive this type of deadline reminder email. So this amendment to the project involves adding an asynchronous deadline reminder mailer to the application.

    Modified Files

    • app/models/due_date.rb
    • test/models/due_date.rb
    • db/migrate/20210319212323_create_delayed_jobs.rb

    Implementation approach

    1) Reminder email sent when assignment or review is approaching deadline: In the due_date.rb file, whenever a new due date is created or an existing due date is updated, the 'start_reminder' method will be fired which will eventually be added to the delayed_job queue. This job will be executed at a preconfigured time before deadline, where it will fire the method 'reminder' which will be added to the delayed job queue by the handle_asynchronously method of gem 'delayed_job_active_record'. Inside the reminder method, we will fetch three attributes - assignment_id, deadline_type, due_at. These three attributes will be used to decide the deadline type ( submission or review or teammate review ), fetch the participant email for that assignment, fetch the deadline threshold and at the end send the email reminder at a specified threshold time before the deadline which will contain all the details such as assignment names link to assignment and assignment type ( submission or review or teammate review).



    Testing

    We have used Rspec for testing the delayed_job functionalities. Using the test-driven development (TDD) approach, we have added a Rspec test which checks whether the mail is enqueued upon the firing of the reminder method.

    We have used Rspec for testing the delayed_job functionalities. Using the test-driven development (TDD) approach, we have added a Rspec test which checks whether the call for reminder method is enqueued upon the firing of the start_reminder method, with the proper scheduled execution time.


    NOTE: All the reminder mails except the ones for the reviewer are sent to expertiza.development@gmail.com ,as this is already set in the development environment.

    Additional Links

    References

    1. Expertiza on GitHub
    2. GitHub Project Repository Fork
    3. The live Expertiza website
    4. Rspec Documentation

    Team

    Parimal Mehta
    Harsh Kachhadia
    Sai Krishna