I code mostly in Python, C++ and Ruby and I regularly participate in coding competitions (not so much now). I’m the proud maintainer of Coder’s Calendar, an Android app and browser plugins for people interested in competitive programming.Although I’ve been coding for more than 4 years, I had never contributed to any open source project other than my own.So when I came to know about Google Summer of Code, the most prestigious open source program for students, I decided to jump in.
At the time, when the list of accepted organizations were released by Google I was learning and building stuff using Ruby on Rails, so I decided to look for interesting projects that uses Rails.And that’s how I came across OSEM.Two organizations, FOSDEM and openSUSE, both had cool project ideas on OSEM.
OSEM is an event management app tailored to free software conferences, used by openSUSE, ownCloud and many other organizations.
The main reasons why I decided to work on OSEM are:
After going through the project idea lists of both FOSDEM and openSUSE, I sent a proposal on FOSDEM’s project titled ‘Implement overall change tracking system’ and it was accepted.
FOSDEM is a free event for software developers to meet, share ideas and collaborate.It is a two-day event organised by volunteers to promote the widespread use of free and open source software.Taking place in the beautiful city of Brussels (Belgium), FOSDEM is widely recognised as the best such conference in Europe. My mentors Stella Rouzi (differentreality) and Richard Hartmann (RichiH) are both part of the FOSDEM team.Stella had participated in GSOC 2014, where she worked on OSEM.
In simple terms, my project is to track changes various aspects of a conference (events, schedule, call for papers etc), display changes made to these objects and also to take actions related to such changes. A major part of the project is to implement an interface which displays the previously mentioned changes with options to revert and view the specifcs of each change.This would allow conference organizers and admins to be aware of all changes made and thus have better control over the organization of their conference.
I had worked on a college coursework related project ( also using Rails), where I had implemented a similar changelog page.This experience came in handy as this made me familiar with gems required to implement such a system and this helped me set up a basic version of such a page easily.
During the past 2 months,I’ve learned a lot.My Ruby and Rails skills have improved considerably.I learned about tools like Vagrant, Travis, RuboCop and concepts like Code coverage.So I’m looking forward to an awesome summer experience.
I’ve implemented a basic version of a Changelog/ Revision History page and the code is under review. This has turned out to be much more complicated that I had imagined when I started coding (my college project had just 5 models that needed to be tracked, OSEM has 40+ :) ).But more on that later..