Name: Nikhil Bafna


Background: I’m currently in my Fourth year of Computer Science at BITS, Pilani. I have a strong formal background in Computer Science through rigorous training at my university.

I’ve been working as a freelance web and software developer for some time. I’m comfortable with Python, Django, MySQL, PostgreSQL, PHP, C, HTML, CSS, Javascript (and jQuery). Some of the web development projects that I’ve undertaken are – FriendVestment, Seinfeld Calendar in Python + Django.

In addition, I’ve developed a Flex-based application for VSEEL Lab, Purdue University, which serves as a training-cum-experimentation module on the Winner’s Curse. I’m currently wrapping up another Flex-based module for ‘Finvis’, one part of an online training-cum-data collection program funded by the US Social Security Administration and RAND Corp. Executable for both can be downloaded from here

As academic projects, I have worked on a Fuzzy Grading system and Hostel Complaint Management system for BITS Pilani.

During the summer of 2010, I interned at National Centre for Antarctic and Ocean Research, Goa, India. There, I worked on projects to Estimated India's Coastal boundaries beyond continental shelf and a virtual tour for the NCAOR campus, the source of which could be found at -

I currently use a Mac dual-booted with Lion and Ubuntu 10.10. I have used a version control system in the past, and I’m currently using git to manage code for my ongoing work for the demo of this project (

What makes me the best person to work on this project?: I am experienced in web development using Python + Django, developing on Heroku, using a version control system. Apart from that, I understand the requirements of the project really well. I have no other commitment during the entire of phase of the GSoC project and I can put in 40-45 hours of work per week. My thesis semester runs from August to December this, and I would be able to continue working with the plugin distribution system and can put in 25-30 hours of work during that period. I have previous experience of working online through feedback, in my freelance projects. As a proof-of-concept of my understanding, I have been working on demo, which can be accessed, at I will keep iterating on the demo throughout the application process, which can be accessed at the same URL.

Project title: Improving Debian Team Activity Metrics

Synopsis: The 'Debian Team Activity Metrics' is an existing project to measure the performance of teams in the Debian community by inspecting postings on relevant mailing lists, commit statistics from project repositories and package upload records from the Ultimate Debian Database. I propose to write a RESTful API to access this information, develop a web interface that presents this by accessing the API, in a clear and intuitive way. That would be followed by a period of testing of the scripts that gather this data and code optimization for that. In the last phase, write scripts to implement new metrics adding to the previous three.

Project details: I’ve decomposed the problem into five main parts, and I’ve addressed each one below.

Before the coding stage starts, there is a period of one month which I would to discuss all possible visualizations for the charts such as bar / line / pie, etc. As an example, visualizing total no. of commits by a team over years is best-done using a line chart and running a regression line through it (as here - Representing percentages of something would be best done on pie chart whereas seeing contribution of top N members in the mailing list is best viewed on a histogram (as here -

I am confident that I can execute all the five parts within the GSoC timeframe and have chalked out a schedule for myself listed in the Project Schedule section.

Benefits to Debian: The gathered metrics are useful indicators of activity and work by various teams. Building a web interface would allow this data to be easily visualized. Exposing this data publicly through API allows users to process it; build their alternate visualizations or mine for useful patterns or correlations. Seeing the work of hard-working teams visualized will be an incentive for the work. Also, showing data about teams, their activities would attract new developers as well.

Deliverables: Development of an interface to the Team Metrics project. API to access the Team Metrics data, and documentation to use the API. Tools to verify that the information gathered using the metrics is correct.

Project schedule:

April 7 to May 20 (before GSOC begins):

May 21 to June 3:

June 4 to June 24:

June 25 to July 8:

July 9 to July 22:

July 23 to July 29:

July 30 to July 12:

August 1 to August 7:

August 8 to August 20:

Exams and other commitments: : None. I have a semester break from May 14 - August 2. The next semester would be thesis semester and I will not have any exams from May 14 onwards.

Other summer plans:: I don't have any other summer plans including any other internship, and as I mentioned earlier, I will be able to put in 40-45 hours of work per week during the GSoC period. I can continue working on the project if the scope increases till the end of December this year by putting in 25-30 hours of work.

Why Debian?: Debian is a great example of an organization, which believes in the philosophy of UNIX and FOSS. Even a couple of years back, I would have jumped at a chance like this. I hope this project serves as a way to become involved with the community and work consistently with them in further development.

Are you applying for other projects in SoC?: Yes, one other application.