Public Lab Research note

  • 0

Upgrade Plot to Rails 4 (eventually to Rails 5)

by siaw23 |

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

About me

My name is Emmanuel Hayford. I am a Rails developer and a final year computer student at the Wroclaw University of Science and Technology. I have been working with Ruby and Rails for about five years. Ruby is my go to language. I program and like working on projects, be it personal or commercial, more so if the project has something to do with Ruby. I am originally from Ghana but live in Poland.

Affiliation: Wroclaw University of Technology

Location: Wroclaw, Poland

Project description

I would like to upgrade Plot which is currently on Rails 3 to Rails 5. Rails 5 comes with a lot of added features and improvements that will come in handy to this project sooner or later.

Abstract/summary (<20 words):


Rails 3 was released 7 years ago. Since then there have been a lot of security fixes and enhancements to the framework and the Ruby language itself. Rails 5 takes advantage of Ruby version >= 2.2.2. The problem this eliminates is the vulnerability of being DoS attacked. Recent versions of Ruby made changes that made sure symbols, which are extensively used in Rails apps are garbage collected. This reason to have Plot upgraded needs no justification in my opinion.


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


Usually open source projects leverage other open source resources. I won't need any extra resource except the time of my mentor in completing this task.


Forked project but locally. Not running on the cloud.


Last year during GSoC, I upgraded Harvard University's Project Lumen (from Rails 3 to Rails 4) -- A Rails application that collects and analyzes legal complaints and requests for removal of online materials, helping Internet users to know their rights and understand the law. This app works in concert with Twitter and Google as far as content is concerned. Also I fixed a bunch of security holes in the app. I gained a lot of experience on that legacy system that I can apply to help Plot.


The tools we usually used were GitHub, Skype and Slack. Just a few of the example or how I communicated with my team. I was usually solving issues and submitting them while scheduling a time to discuss my changes/additions with my mentor and seeking advice at the same time when I needed. Self motivation came from being able to solve tasks and getting the approval from my mentor. My main aim is to strive for completing tasks and ticking out "to-dos". This gives me satisfaction. Considering that most documentation is in English, self sufficiency has never been a problem.


I am more interested in the technology stack of your projects. The frameworks, language and tools you use are stuff I love and work with on a daily basis. It's exciting to continue developing oneself in the skill one knows already. I can't see anything more exciting that that.


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



Summer is usually a free period for most full-time students. This is not different with me. I have 3 months to my disposal and I'd want to make meaningful use of it.

software gsoc gsoc-2017 soc soc-2017 rgsoc-2017 soc-2017-proposals



@warren @liz please let me know if someone is actively working on this, if not then i'll submit a full proposal.

Hi, Siaw23 - there is one attempt in particular that's been started, but I haven't seen updates on it recently so it's possible this is still in progress:

Have you been able to open a pull request and commit a change? We really appreciate seeing that folks are comfortable with the Github Flow process and with working through the PR process, even for a simple issue. Thanks!

@warren hello. I have seen that. i suggested it considering there's been no update on that thread. if he's still doing it then we can forget about this proposal. if not i'd like to take it on :)

also i have forked the project and looked through the issues/PRs and most of my ideas are being worked on. i'm a fan of clean and readable code. i suggested we follow ruby style guidelines since the project has a lot of violations. i'm working on it currectly as an extra responsibility :)

You must be logged in to comment.