This post was looong overdue. GSoC 2016 ended more than a week ago, but my journey into open source has only just started. The summary of my project can be found here. My only experience with Django prior to this project was as a part of a team of 3-4 students who made a website for a startup in the college. I did only the most basic stuff and most of Django was still shrouded in mystery. A big reason for how I was able to do so much in such a short time was my mentors. They made me feel confident even in making the silliest of mistakes and asking the silliest of questions. Thanks Nida Sahar and Jiaqi Liu!
For the most part of the GSoC period, I was staying over at a friend’s home in Mumbai, but I didn’t really have access to internet properly. I had to go to a cyber cafe nearby to download stuff, and simply used my phone’s data connection for pushing commits at home. Thankfully I had downloaded Django documentation in my system and that got me through for the most part. I was back in college and had a good connection for the last one month though.
Since I didn’t have a lot of experience with Django, I made some quite silly mistakes in the early period of GSoC. There was one time at the beginning when I was stuck on the sponsors feature because the sponsors’ page simply wouldn’t load. It kept throwing a 404 Not Found error. All the other things worked fine. I was stuck on that for several weeks. I did move on to implementing other features during that time, but I just couldn’t get my mind of that error. I checked and rechecked the view, template, URL and everything. I did all sorts of debugging. One fine day, right after I finally gave up and told my mentors that I just can’t solve this, I realized that I only needed to change the order of URLs. I had to place the sponsors’ URL [r’^(?P<slug>[\w-]+)/sponsors/$] above the view_meetup URL [ r’^(?P<slug>[\w-]+)/(?P<meetup_slug>[\w-]+)/$]. ‘sponsors’ was being resolved as a ‘meetup_slug’. Howsoever silly it was, I learned a lot of things while trying to solve this, which helped me later on. So I guess it wasn’t all bad. A few mistakes later, I was much more confident with the code I wrote.
The things that were completely new for me in Django were permissions and notifications. I spent a lot of time understanding and implementing permissions. Initially I had planned on making a separate application for notifications but then I found pinax-notifications and used that instead. It served the purpose quite well.
I was short on time since there were things I had to do which I did not include in the timeline I proposed, and I couldn’t work for about 10 days or so in between. But I managed to finish everything I had mentioned in the proposal. There are things which I feel can be improved, and some features which I feel need to have more thought put into their design. I want to make all these changes and be a part of whatever new feature comes up next in the Systers’ Portal.
This project was the best possible introduction to open source I could ask for. I learnt a lot and met amazing people. I’ll keep contributing to Systers, and also explore other areas of open source in the future.