Kharagpur Winter of Code is a 5-week long online program for the students of various colleges, especially for students of IIT Kharagpur, who are new to open source software development.
It was December 7 when I stumbled upon Kharagpur Winter of Code site. Being new to open source development, this program was really fascinating for me. I wanted to take part in Google Summer of Code, but I was unaware of the procedures, working of the program which made me less confident. This program seemed like a stepping stone into contribution to open source world. I went forward and registered, and did the initial formalities.
Choosing the Project:
The next step was to find a project which would be suitable for us to contribute to. There was a list of projects available. Every project were mentioned along with the details of mentor of the same. I skimmed the project details, and searched for a project which I could contribute tirelessly. I ended up bookmarking 3-4 projects. A couple were based on Python, and another on Ruby. Though there wasn’t any restriction on choosing the number of projects to contribute. I thought it’d be better to just concentrate on a single project rather than losing focus on multiple projects. At the end, I picked up the project – TV Series. This project is a kind of tool that scrapes the episodes’ synopsis of popular TV Series from sites like Wikipedia and IMDb and shows them all at one place with a user-friendly navigation UI. Since I’ve watched quite lot of series, I understood the content of the project quickly. The project was built in Ruby, I previously took Ruby basics in Codeacademy, so I was aware of the basics. My mentor for this project was Athitya Kumar. I sent him a mail, and he replied me with the instructions for proceeding.
I had previously used GitHub to hold couple of my small projects, so I was aware of how GitHub works. I could have done every job with GitHub, but Athitya advised me to learn Git. I watched couple of YouTube videos on Git, and small help from Code School, I learnt the basics of Git. I forked the repository to my profile, cloned it to local system, and by now I had the environment ready, all I had was to start contributing.
Update #1: 11 Dec – Pull Request #1:
I checked the README.md, the list of TV series added and yet to be added was mentioned. I started with the series Gotham. There were 2 tasks for every series to be added into the site: 1. Gather the details of the series and 2. Write a scraper function which will scrape the site and get the details.
Snippet from index.json
Above is a picture of one series’ JSON data consisting of the URLs which will be scraped by the function. The function codes can be found in the repository. Once the changes were made, I checked with the local site, everything worked fine until I found out that I was working with a old repo which resulted in Merge conflict. Athitya guided me to update the repo, and I redid the process, and finally gave my first pull request.
Pull Request #1
And after Athitya verifying the code, he merged the Pull request, and closed it. And my code was added to the main repository. This was the first piece of code I had written for other’s project. And later there was another contributor contributing his code. It felt good seeing the project having more content in few days. By this time, I was familiar with the working of Git, so had no problem with it.
Update #2: 17 Dec – Pull Request #2:
I had one of my final exam on 16th. So I wasn’t able to contribute in between. Now that the first contribution was made, I could see my name in KWoC Leaderboard with the mention of 1 commit. It felt super cool 😀
Behind the scenes: Working of the Scraper function
I now made the resources ready for the second addition, I chose the series Person of Interest, repeated the same procedure, wrote the information, scraper function, executed, committed, pushed to my fork. And gave the second pull request.
Pull Request #2
Like the previous pull request, Athitya reviewed, merged the commit to the main repo, and closed the pull request. And after few hours, the leaderboard showed 2 commits. Till now, I’ve worked on the contribution towards the contents of the site, I’m now working on making changes to the functionality of the site / fixing the issues listed in the GitHub repository.
KWoC site had mentioned that Mid Term evaluation takes place from Dec 15, well, this is my contribution towards the project so far. Here’s to many more learning and contribution.
Update #3: 18 Dec – Pull Request #3:
This pull request was to add the series ‘White Collar’ into the existing series directory. Wrote scraper function for extracting details of the series from Wikipedia, and then pushed the changes to my repository, and then gave a Pull request.
In the 3rd week of December, I had the opportunity from Google Developer Groups Madurai to visit Bangalore and work in NASSCOM Startup Warehouse at Diamond District, and hence I wasn’t able to concentrate on KWoC for few days.
Even though, KWoC has reached to its end, since it’s an open source project, I could contribute to it anytime. I’ve planned to fix the issues mentioned in the coming days.
Huge thanks to Athitya Kumar for bearing my silly questions and addressing every single one of them. Do read his blog post on his experience being a mentor of several other projects in KWoC. If it wasn’t him, this whole process would have taken weeks and the learning curve would have been tough. Lot more to learn from you. Thanks again! 🙂 Also thank you IIT Kharagpur, KOSS for hosting a beginner friendly program, and making sure the learning is maximum. Hoping for more events like this in the future, and make sure it’s for all college students, so that people like me can be benefitted from it as well. 😀