Public Lab Research note

GSoC 2018: Final Work Product of Draft Feature and Email Integration Project

by gauravano | August 11, 2018 15:07 11 Aug 15:07 | #16913 | #16913

Project Details

Project Title: Draft Feature and Email Integration Project

Project Proposal:

Link to GSoC Project:

Open source Platform Used: Github

Github Organization Page: Publiclab

Repository Contributed to: plots2

Languages/Framework Used: Ruby on Rails, JavaScript, HTML/CSS

My PublicLab Profile:


Draft Feature: This feature would allow users to save their research note as a draft so that user can complete it anytime. It would also allow a user to generate a secret link which he/she can share with specific users to have their review of his work.

Email Integration Project consists of three major parts - 1. Reply by Email to comment: This feature would allow a user to comment on the research note or question posted at PublicLab just by replying back to the notification email they received regarding the question. -- Implemented by teammate 2. Weekly Digest: Implementation of feature by which an email would be sent to each user of Public Lab containing his/her liked topics updates. -- Implemented by teammate 3. UI for email notification settings: I have designed the user-interface which would allow users to customize their experience with PublicLab's website.

Code Links

Links to all Commits:

Link to related Issues:

Link to Pull Requests:

Here is an image of the Contribution graph. Find it at this link

image description

First-timer-only Issues

Plots2 has a well-maintained, beginner-friendly codebase, so encourages first-timers who have either haven't contributed to open-source or have very little experience to contribute. It has some great issues labelled as example label which make good start for first-timers. I have also made some during the summer. They can found in the link given below.

Link to first-timers-only issues:

Project Description

Here are the list of features that I worked on throughout the summer of code:

Draft Feature

Draft feature allows users to save their research note as a draft so that user can complete it anytime. It would also allow a user to generate a secret link which he/she can share with specific users to have their review on his work.


DEMO of Draft Feature:

As a reasearch note on PublicLab is created when plots2 work with Publiclab editor so for creating a note as draft, it was required that some parameter should be sent through PublicLab Editor which is easy task so I opened a FTO for this purpose and here's the merged PR

PLANNING ISSUE for Draft Feature:

Pull Requests for Draft Feature:

Tests for Draft Feature:

Documentation for Draft Feature:

Wiki for Draft Feature: Here's the wiki explaining detailed working of Draft Feature -

Email Integration Project - Configurable Email Settings

Email Integration Project has three parts Reply by Email to Comment, Weekly Digest and a user interface for managing digest settings and configurable email notification settings. First two parts are completed by other team members who are also assigned same project. So, my part left to Configurable Email Notification Settings.

A new page is also created by me at from where user can choose which type of notification emails they want to receive. Currently, there are 5 settings available on the this page.


Settings page save user-specific settings using UserTags and not in table so a user can modify these settings by adding/deleting tags from his profile page too, if he has enough technical knowledge.

DEMO of Email Settings:

Like notification setting demo:

In-direct comment notification setting demo:

PLANNING ISSUE for Email Subscription Settings:

Pull Requests for Email Settings Part:

Tests for Email Settings:

Documentation for Email Settings Part:

Other significant Issues handled

There are also many issues that I worked on apart from my project during Coding period. Here are some:

Comment Moderation System

Comment Moderation System allows moderators and admin to moderate comments just like nodes. The aim is to reduce spam by extending moderation options. The moderated comments can be re-published again from (page accessible to moderators and admin only).


Button for marking comment as spam are also included in E-mails so that moderators can easily mark them as spam

image description

PLANNING ISSUE for Comment Moderation System:

Pull Requests for Comment Moderation System:

Tests for Comment Moderation:

Welcome Email at Sign-up

A new Welcome mailer is made which is sent to user at sign-up. This mailer body is made using the Feature functionality i.e., admins can change the email body from anytime. Also, the mailer is designed such that it can parse images too, other wise normal feature body can only contain plain text. A fallback email body is also present at backend in case feature is deleted from the website.

image description

PLANNING ISSUE for Welcome Email for :

Pull Requests for integrating Mailer:

Tests for Welcome Mailer:

Expanding Promoting Comment to Answer feature to Answer's comment

Promoting comment to answer was developed to work with normal comments only. I expanded it to promote comment of both types to answer.

Issue associated:

Demo after Implementation:

Pull Request:

Some other small Issues are:

Expanding Author Subscription System

Extended Query Search with extra tag

Ongoing development

Currently, I am working on last bit of Email Settings Project which is to implement Unsubscribe from node.

Presentation at OpenHour

As we had an OpenHour whose topic was Summer of Code Projects, here's the presentation which I used for presenting my work.

Thank you so much to my mentors:

Thanks to PublicLab team @icarito @liz and all contributors, this was really a great summer with full of learning experiences 🎉 ❇️ !

Have any question ❓ about my project, please feel free to comment below. If you like 👍 my work then let me know by liking it ⭐️. And, if you want to be a part of our amazing team of PublicLab, just head over to our Welcome Page and start your journey 🚀.

Happy Coding!


@gauravano_test testinggg

Reply to this comment...

Login to comment.