CSC/ECE 517 Fall 2017/E1758 Improve e-mail notifications

From Expertiza_Wiki
Revision as of 19:23, 28 October 2017 by Ksharma5 (talk | contribs) (→‎Team)
Jump to navigation Jump to search

Introduction

Expertiza is a web application developed using Ruby on Rails that serves as a peer-review system. The application allows students to submit and peer-review learning objects (articles, code, web sites, etc)[1][2]. It is an open source project and it's codebase is maintained in GitHub. We are contributing to Expertiza as a part of our Object-Oriented Design and Development's Open-Source Software (OSS) Project. Our goal in this project is to fix various issues related to staggered deadlines for assignments. A staggered-deadline assignment is an assignment in which different topics have different deadlines. In this Wiki Page, we will explain the changes that we have made for the same.

Changes To Be Implemented

  • What’s wrong:
  • When students' accounts are created by importing a CSV file on the Users page, they receive e-mails with their user-ID and password. But if an account is created by adding them as participants to an assignment when they don't already have an account, e-mail is not sent. Students should receive e-mails upon account creation, regardless of how their account is created. So this involves adding a call to the e-mailer … or, perhaps, moving an email call from the Users controller to the point where an account is actually created.
  • Second, evidently if a submission is revised after review, the system e-mails the reviewer saying to revise the review. This is just fine ... except if the last round of review is in progress.The message telling reviewers to revise their reviews should not be sent after the last review deadline has passed. It would also be nice to fix the message so it tells which review (Review 1, Review 2, etc.) has been revised, and gives the reviewer a link directly to it.
    • There are also other circumstances when it would be helpful to send mail.
  • Send out an email to the invitee when a participant sends out an invitation to another participant to join a team.
  • The student who issued the invitation should also be e-mailed when the invitee joins the team. And also when a student responds to a teammate advertisement. In general, all activity on ad responses and invitations should be reported to the other party by e-mail (unless these e-mails are turned off in a (new) profile field).
  • Notify an instructor by e-mail when a student suggests a topic.

    Modified Files

    • app/controllers/invitations_controller.rb
    • app/controllers/submitted_content_controller.rb
    • app/controllers/suggestion_controller.rb
    • app/mailers/mailer.rb
    • app/models/assignment.rb
    • app/models/assignment_participant.rb
    • app/models/course_participant.rb

    Added Files

    • app/views/mailer/partials/_user_invite_html.html.erb
    • app/views/mailer/partials/_user_invite_plain.html.erb
    • app/views/mailer/partials/_user_welcome_html.html.erb
    • app/views/mailer/partials/_user_welcome_plain.html.erb
    • app/views/mailer/send_mail_to_instructor.html.erb
    • app/views/mailer/send_mail_to_instructor.text.erb
    • app/views/mailer/partials/_user_accept_html.html.erb
    • app/views/mailer/partials/_user_accept_plain.html.erb
    • app/views/mailer/partials/_user_decline_html.html.erb
    • app/views/mailer/partials/_user_decline_plain.html.erb

    Approach Taken To Implement Changes

    NOTE: All the mails except the ones for the reviewer which are sent to mailinator , are sent to expertiza.development@gmail.com ,as this is already set in the default settings. 1)

    Initially the email were being sent to users when they were added using a CSV file on the users page only . Now we added a method in the assignment_participant.rb model to send mails when a participant is added to an assignment on the assignment page through a CSV file. Also we added a method in the course_participant.rb file to send the mails when the user is added on the course page using a CSV file.





    2) Initially whenever a submission was being revised ,a mail was being sent to the the reviewer to revise the review. We needed to make sure that mail should not go when it is the last phase of review.Now in the file ...... we have put a check on the condition that if it is the last round of review then mail should not be sent to the reviewer for revision of his review.

    We also set this check for the condition when user upadtes the link of his work




    3) Initially no mail was going to the reciever when a participant was sending an invitation to another participant. We have edited the create method to put the mail functionality in invitations controller we also created two partials for the respective view namely.

    • app/views/mailer/partials/_user_invite_html.html.erb
    • app/views/mailer/partials/_user_invite_plain.html.erb


    4) As there was no mailing method for invitation there was also no method to notify the sender of invitation about the acceptance of his invitation. For this we made changes in the accept and decline methods of the invitations controller.Apart from that we created four partials for the respective changes,namely:

    • app/views/mailer/partials/_user_accept_html.html.erb
    • app/views/mailer/partials/_user_accept_plain.html.erb
    • app/views/mailer/partials/_user_decline_html.html.erb
    • app/views/mailer/partials/_user_decline_plain.html.erb

    5)


    When a student suggests a topic initially the instructor was not notified.We edited ..... in the ......... now the instructor is recieving mail when a student is suggesting a topic.

    Additional Links

    References

    Expertiza NCSU

    Team

    pragam gandhi
    kapil chopra
    kamal sharma