(This template is for students applying to summer code programs with Public Lab. Use this link to start writing a post: https://publiclab.org/post?n=899&tags=gsoc,gsoc-2017-proposals You can delete this line once you've started filling it out.)
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
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. https://github.com/siaw23/plots2/blob/master/Gemfile
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.