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
For users intending to view the deployed Expertiza associated with this assignment, the credentials are below:
- Instructor login: username -> instructor6, password -> password
- Student login: username -> student1, password -> password
- Student login: username -> student2, password -> password
- Reviewer login:username -> reviewer1 , password -> password
- Reviewer login : username ->reviewer2 , password ->password
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 snippets
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.