CSC/ECE 517 Fall 2017/E1780 OSS Project Teal Email Notification Enhancements
This wiki page is for the description of changes made under E1780 OSS Project Teal Email Notification Enhancements.
About Expertiza
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza also sends automated emails to the instructor, reviewers and participants for most of the above mentioned activities.
Problem Statement
The following tasks were accomplished in this project:
- Instructor should get an option to create a participant if (s)he does not already exist in the system.
- E-mails about reviews should direct the user to the page where the review is found.
- Deadline reminders should include a link on where to go to perform the needed function.
- Instructor notifications of where reviews disagree by more than a threshold # of points should point the instructor to the reviews that disagree.
- Send out an email to the invitee when a participant sends out an invitation to another participant to join a team.
- All activity on ad responses and invitations should be reported to the other party by e-mail.
- Notify an instructor by e-mail when a student suggests a topic.
- Instructor should get a copy of all emails sent to the student.
Peer Review Information
A self explanatory video has been uploaded for the same.
Files changed
Controllers
- invitations_controller.rb
- profile_controller.rb
- suggestion_controller.rb
- users_controller.rb
Helpers
- mailer_helper.rb
- login_helper.rb
Mailers
- delayed_mailer.rb
- mailer.rb
Models
- response.rb
- user.rb
Views
- invite_message.html.erb
- new_topic_suggested_message.html.erb
- notify_grade_conflict_message.html.erb
- _invitation_accepted_html.html.erb
- _invitation_declined_html.html.erb
- _invitation_pending_html.html.erb
- _new_submission_html.html.erb
- _submission_deadline_test_html.html.erb
- _additional_links.html.erb
- add.js.erb
- _prefs.html.erb
Spec
- factories.rb
- user_spec.rb
Solutions Implemented
Providing option to instructor to create non-existent participant
- A flash message was added when the instructor adds a non-existent user as a participant.A new link to redirect the instructor to the user creation page is also added.
- Related code snippet
Link provided to redirect user to page where review is found
- A new link was incorporated in the email to redirect the user to the corresponding review page.
- Related code snippet
Incorporating a link for submission deadline reminder
- Tests were done for already existing functionality as deadline reminders are not being sent as per the current functionality.
- Related code snippet
Enhancing the email that the instructor receives for contradicting reviews
- The email that the instructor receives for contradicting reviews was enhanced by adding the previous average score of the total reviews and the score of the new review. The readability of the email was also increased by adding bullet points wherever necessary.
- Related code snippet
Sending email to the invitee to join a team
- When a particular student invites another student(s) to join a team for a particular assignment, then the invitee(s) should receive an email for the same.
- Related code snippet
All activity on ad responses and invitations should be reported to the other party by e-mail
- Three new partials have been created to send emails to both inviter and invitee for the responses(accept, decline, pending) of invitations to join a team
- Related code snippet
Emailing to the instructor when a student suggest a new topic
- When a new topic is suggested by a student to the instructor , an email is sent to the instructor regarding the same for his decision to approve or decline.
- Related code snippet
Instructor should receive copy of emails being sent to the student if (s)he wishes to
- Instructor can choose to receive all the emails being sent to the students to understand proper functioning of the system.
- Related code snippet
Testing Details
RSpec
- There were existing test cases for the delayed_mailer.rb and the functionality is checked by running those test cases.The snapshot of running the Rspec for the deadline reminder details is given below.
Related snippet
Future Works
- Reviewer is receiving an email after a submission is revised.
- The above mentioned should also contain the Review round after which the submission has been revised.
- The above mentioned must contain a link that redirects the reviewer to the link where the review is found.
- Reviewer does not receive the above mentioned email if the last round of review has been completed.