Public Lab Research note

GSoC!proposal: Filter out spam from comment.

by lukoyedith | April 20, 2021 15:14 20 Apr 15:14 | #26283 | #26283

(This template is for students applying to summer code programs with Public Lab. Use this link to start writing a post:,soc-2019,soc-2019-proposals You can delete this line once you've started filling it out.)

About me

My name is Emogene Lukoye. I have been coding for 1.4 years. These are some of the technologies I have used; Rails, Ruby, JavaScript, Linux, GitHub, Heroku, Docker, SQLite and PostgreSQL.

Affiliation (Pwani University)

Location: (Africa)

Project description

Here, you don't have to have a complete proposal when you begin. Just tell us some of your ideas and we'll help you refine it into a full proposal gradually!

Abstract/summary (<20 words):


What problem(s) does your project solve?

My project aims to filter out spam comments from replies on the PublicLab website. For this, I will use a gem called rakismet, build for rails using the Akismet API which is a WordPress plugin for filtering spam comments.

Read the full project here:


Break your project up into small projects -- one per week!

May 24 - 30

-Sign Up for the Akismet account.

-Ensure the API Key is available for use

-Add the rakismet gem to the Gemfile.

Create FTO's and review PR.

June 1 - 7

-Configure Akismet according to the Docs.

_-Add columns to the comments table _

-Fix any migration errors that might arise.

Create FTO's and review PR.

June 8 - 14

-Implement Akismetor plugging

-Write tests

-Create FTO's and review PR.

June 15- 21

-Ensure Akismetor pugin is working

-Ensure written tests are passing

-Create FTO's and review PR.

June 22 - 30

-Refactor the comments model code.

-Ensure written tests are passing

-Create FTO's and review PR.

July 1 - 7

-Refactor the comments controller code.

-Ensure written tests are passing

-Create FTO's and review PR.

July 8 - 14

-Work on user dashboard to display the correct message

-Ensure written tests are passing

-Create FTO's and review PR.

July 15 - 22

-Work on the admin dashboard to display the correct message

-Ensure written tests are passing

-Create FTO's and review PR.

July 23 - 31

-Add approved comments to the admin dashboard

-Ensure written tests are passing

-Create FTO's and review PR.

Aug 1 - 7

-Implement ham for spams that are false positives.

-Ensure written tests are passing

-Create FTO's and review PR.

Aug 8 - 14

-Add a link to the show ham spams on the admin dashboard.

-Ensure written tests are passing

-Create FTO's and review PR.

Aug 15 - 21

-Implement code admin to see active users on the dashboard.

-Ensure written tests are passing

-Create FTO's and review PR.

Aug 22 - 30

-Check to see that all implemented changes are working smoothly across different devices.

-Do a final sweep to ensure all tests are passing.

so final sweep to ensure all feedback has been documented.

-Create FTO's and review PR

-Write a blog to document my journey and for learning purposes.

See this page for guidance on breaking your plan up into small, self-contained parts:


What resources will you need: people, documentation, literature, sample data, hardware if applicable

To implement this functionality, I will need mentors and other collaborators for guidance and feedback, Akismet Documentation and Tutorials.

First-time contribution

_Have you looked over our welcome page and are you familiar with how to make your first contribution? Have you already made it? We're eager to see that you've had a good experience making a small initial contribution to our site. Please check out our welcoming page: _

And paste in links to your initial contributions here so we can see!

You can use links like these to show recent activity:


_I learnt writing software through Microverse school which is a Bootcamp. I have worked on hackathon projects. Here is my GitHub repo: _


Describe teams you've worked with before, whether open or closed source and in what capacity you participated. Cite examples of how you were self-motivated and self-sufficient.

_I have worked with teams from around the world via pair programming and mob programming. I worked on the front-end of some applications, helping with implementing design and UI. I have worked on the backend as well using rails mostly. What has kept me motivated to work on these projects is the process of figuring out the issue, collaborating to solve it and finally seeing the changes go up, it's fulfilling. _


What about our projects, and Public Lab, interests you? What are you passionate about? Open science, environmental justice?

What excites me about Public land is that it's focused on sharing knowledge. I love teaching and sharing what I learn through talks or articles. Education is a topic that is dear to my heart and helping PublicLab share knowledge about environmental justice is a double win. We need to take care of our environment and earth, sharing knowledge about how to is the initial step.


Whom do you want your work to help? We especially appreciate proposals that make technologies and techniques more welcoming and friendly to those who've often been excluded.

I would like for this project to help PublicLab members communicate with ease and share knowledge without having to worry about being spammed in the comments.


Do you understand this is a serious commitment, equivalent to a full-time summer job? Tell us how you'll structure your schedule from day to day!

_To give an overview, I would start work at 8 am, use 2 hrs to either research /read Docs/ watch tutorials, have a 30 min break then from 10:30 am to 12:30 pm, look at the project code, implement changes, work with a mentor where stuck, have my 1 hr lunch break, from 1:30 -3 pm continue with code implementation and completing tasks of the day. Take a 30 min break. 3:30 - 5:00 pm, review PR, help other collaborators. 5:00 pm - 5:30 pm, meet with my mentor for a discussion about progress report, feedback etc. Sign off at 5:30 pm. _


Hi @lukoyedith, is this proposal meant to be similar to the one you posted as a Wiki? I had some feedback for that, which I think you can reuse for this one as well.

I would suggest you have a look at past proposals, to get a feel of the format/details you can add

For the research idea you have posted, is it part of the 2021 ideas or is it a subset of one of the ideas? Would you consider picking one of the 2021 ideas?

Is this a question? Click here to post it to the Questions page.

Reply to this comment...

@ruthnwaiganjo, that's for your feedback. The reason I posted the proposal as a research note is because @jywarren recommend I do so in the Public Lab chatroom. Also,this project is part of the 2021 ideas under improve education-related usability and functionality.

I would suggest looking at the project as a whole as opposed to a subsection of it. Your project would focus on the entire education-related usability and functionality project. The filter spam idea would be within the main education-related project.

Reply to this comment...

@ruthnwaiganjo,can you please share a link to the feedback posted in the wiki ? I can seem to spot it .

Is this a question? Click here to post it to the Questions page.

Hey, I did not post the feedback on the Wiki since the Wiki does not accept any comments. It is the same feedback I have shared here.

Reply to this comment...

Hi @lukoyedith - I really appreciate the detailed work you've done to imagine this feature. It has a lot of potential power. But i do want to echo Ruth in noting that we have a broader collection of tasks in both of our project descriptions as we link to from -- and we are really prioritizing these project scopes for this round. Your project seems really carefully thought through and I think it looks great, but I want to encourage you to modify your proposal to encompass more of the scope of the posted projects.

Thanks so much for the time you've put in on this and I appreciate your proposal!!!

Reply to this comment...

Ah - i see your new draft here!

Thank you!

Reply to this comment...

Login to comment.