Introduction to Implementing Ticket Payment feature for OSEM – GSoC ’16


Hello fellow readers!

Starting with my introduction, I am Rishabh Saxena, currently pursuing my Bachelors in Engineering in Information Technology from Birla Institute of Technology, Mesra, India and I have been keen to contribute to the open source society since I came to know about it. You can always find me on GitHub here.

I came to know about web development in my freshman year and have been keen to learn about the methodologies since then. I always like when my ideas come to life with every project I do. I also try to participate in every tech event or talk so that I can learn new things.

So, when I came to know about Google Summer of Code and that you get one of the best and most learned people across the globe teach you about the methodologies about web and software development, it immediately grabbed my attention. I started reading about the process and further details about the program, simultaneously reading and learning about software development.

As I heard a lot about GSoC, and how difficult it was to get selected for your project, I decided to give my best and started reading about project descriptions.

I was interested to learn Automated Software testing and also about better code quality approaches, I decided to apply for web application based projects. Also, as I use POSIX systems for my work, openSUSE was a familiar and a cool name to go with. I started browsing if openSUSE community was working with interesting web application here.

Screen Shot 2016-05-26 at 11.36.01 AM.png

 and I found OSEM which helps organisations organise and manage their conferences and it was on Ruby on Rails, which I wanted to work with, since some time. I immediately started reading  the codebase and as I was a bit familiar with how web applications work, I started solving some junior bugs in some days, and as I proceeded solving those bugs my mentors guided me about various good practices for better code quality, and they were extremely helpful and encouraging. Their encouragement and feedbacks were one of the prime reasons which led me to get my proposal selected.

Currently in OSEM, whenever an attendee purchase a ticket for any conference, they have to pay for the ticket when they reach the conference, so, my project is to integrate a reliable and secure payment feature in the application so that people can pay for their tickets. This will make the experience for both attendee and organizer smoother and hassle free. For this project, I have my awesome mentors, Artem Chernikov, who currently is Project Manager/SCRUM Master at SUSE and Hernán Schmidt, who currently is Senior Rails Application Developer at SUSE ,who are guiding me for the project. Both of them have a lot of experience and have been helping me a lot for taking the project further.

We already had discussions about how to proceed with the project, and we decided to develop this feature using TDD and RDD approach and keep the track of our project using agile methodologies. We also came about various possible ways of integrating this feature, but the best possible way was to keep the code modular so that payment gateway’s code is not too hardly integrated with the main application code, using Active Merchant gem. In this way, anyone who uses the application will just have to edit some configuration files and any payment gateway will work with the application in the same way.

So far, in the community bonding period, we discussed and finalized on what and how things will be done. So the overall layout of our planned work can be found here . I also tried implementing two Rails project during the community bonding period, one to get a better grasp of Ruby on Rails and another for getting a working Active Merchant  implementation.

As the coding period has now started, I am looking forward to implement and learn new things and have an awesome experience ahead!  🙂


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s