GSoC product submission

Reading time ~3 minutes

As GSoC final evaluations have been started, this post will summarize the project experience and the tasks I worked on. I will also provide the links to the code and the challenges I faced.

You can see all the commits merged during GSoC here

Features Implemented in TSP during GSoC

Migrating to Bootstrap 3

TSP was built on Bootstrap 2 but as there has been a significant amount of changes in the latest version of Bootstrap it was necessary to migrate to the latest framework, so writing a new theme does not imply using an outdated CSS framework. This was my first task in which I updated TSP to Bootstrap 3.

Index
TSP on Bootstrap 3

You can visit my previous post for more information here.

To check the Pull Request for this task click here.

Challenges: In TSP user can choose between two themes the default bootstrap theme and bento theme. So I had to make the changes while keeping both the themes in mind and also had to update the bento theme to work on Bootstrap 3, but I think it was worth as Bento theme looks pretty nice you check it out here.

Rubocop

There was no Style Guide defined for TSP. And as a style guide is very important for an open source project. We added Rubocop, a static code analyzer which enforce many of the guidelines outlined in the Ruby Style Guide.

Pull Request: #55

Event Email

With this feature tsp members and event organizers can easily notify the event participants based on their travel requests state. You can choose the participants easily based on the states like submitted, incomplete, approved,etc and don’t need to select each user one by one. Also you can use the markdown syntax in the email body.

Index
Event Email view

Blog Post having details for this feature: Event Email.

Pull requests related to this feature: #54, #56, #65, #81 and #88

Preview emails

To test and preview your emails you can use letter opener web which has been added in TSP. Letter opener web can be used on heroku also.

Check out the Pull Request here #73.

Participants view

Now the TSP members and the event organizers can view the list of participants for an event with their details and request status. This makes it easy for event organizers to keep track of the participants.

Index
Participants View

Pull requests: #80 and #92.

Challenges: To complete this task we needed to fetch the users details participating in the event but fetching them directly could have void the user’s privacy. So to maintain their privacy we needed to fetch records based on the logged in user’s ability but users doesn’t had the ability to view some user’s details. So to accomplish this we fetched the requests accessible by the person and then the user details with the help of the request.

Implementation of Event Organizer concept

Now in TSP you can create event organizers for an event. An event organizer can view the participants list and notify them with the help of the event email feature. An event organizer can be easily added or removed by a tsp member.

Index
Event Organizer Index Page

Blog Post having more details for this feature Event Organizer.

Pull Request related to this feature: #83, #91, #97 and #98.

Challenges: We wanted to have the event organizer as a local role to an event. So we had to create a many to many association between the user & the event and use nested resources in the ability file to accomplish this. It was a little tricky but it was fun playing with cancancan. For more details regarding the implementation you can check out the above mentioned blog post.

Heroku deployment

We have created a demo version of travel support program on heroku. There you can try out the above mentioned features and many more. Have a look at them here: http://travel-support.herokuapp.com/ .

Project Experience

The experience of working in openSUSE during Google Summer of Code was full of learning and joy. I learned about better code practices, Test Driven Development and a lot about Ruby on Rails.

I would like to thank my mentors Björn Geuken and Christian Buckmayer and the openSUSE community for this awesome summer.

I will continue working on Open Source projects and of course on TSP. I would also recommend other people to work on open source projects as they help you a lot in developing your skills and also you get to meet some really amazing people. If you want to work on Open Source projects you can have a look at some great projects provided by openSUSE.

GSoC Second evaluation

Features implemented in during the second phase of GSoC Continue reading

Second task of GSoC

Published on June 20, 2017

Migrate to the latest version of Bootstrap

Published on June 05, 2017