[Soc-coordination] Report 5: Improving Team Activity Metrics

Vipin Nair swvist at gmail.com
Sun Jul 29 22:35:37 UTC 2012


This is the fifth report on the GSoC project 'Improving Team Activity
Metrics' with Sukhbir Singh and Andreas Tille as the mentors. The
details of the project is available at Debian Wiki[1]. That project
proposal that I have submitted as part of the GSoC application is also
available on the wiki[2].

Since the last report, I have done the following work:

1) Added a metric to the set of existing metrics.
I have added the uploads metric to the project. I had spent quiet some
time on this to get this working as I had to figure out how UDD works.
Finally with some help from Andreas, I have finished this. The code
needs to be optimized the request takes some time (~1000ms) to process
now. I am adding the bugs metric currently and it is half done. This
is the last metric and once this is added, the work in this part is
done. If we discover a new metric, we could add it later, without much

2) Static interface.
I have created a static interface which will display a static image to
the user which is a plot of the available data. The plot is generated
on the server side and is already available. This interface is
developed for browsers with no JavaScript environment. The demo UI is
available on github[3].

3) Dynamic Interface.
I have created a dynamic interface for JavaScript enabled
environments. This interface consumes the API we have developed
earlier and renders the plot dynamically in the users browser. The
advantages of this approach is that we can minimize the data
transfer(No images are transferred, only text) and hence speed up the
the interface considerably. The plots are rendered using a JavaScript
library called jqPlot. In addition to the interface, I have written
JavaScript to extract the relevant information from the API via AJAX
and then render the graph on the browser. Since this is JavaScript
powered, We can render interactive plots. I have added some minimal
interactivity to the interface, for example, a value pops up when you
hover over a point on the graph. Even this process took some time as I
had to add some improvements to the existing API to make parsing an
easier task. A demo UI for this is available on github[4].

Comparing the current work to the proposal that I have submitted, I
have noted few points:

1) I had divided my work into distinct phases to be done one after the
another but practically there was always some work in all different
phases. The API design was phase one. I have added different metric
over a period of time. This task is still incomplete as one of the
metrics is not yet in production.

2) Another task was to write code for the visual representation of the
data. The static images are readily available on the blends.d.n
machine. The dynamic plots work is done. I have written a general
parser that can parse any data form the API and plot it accordingly.
This section can be considered complete. There could be some changes
that need to be made, like UI enhancement, which could be done with
minimal code changes.

3) Last task was to setup the Interface. The task was fairly easy and
I am constantly working on this.

4) I learned unit testing and try to follow TDD. I was somewhat
successful in doing so. The code has 100% unit test coverage(till last
few commits).

5) Zero documentation till date;

I am at least a week back from my proposed schedule but I had allotted
2-3 weeks as buffer period to manage any issues. I am fairly confident
that I will be able to satisfy at least minimal project requirements
before the GSoC period officially ends. We have tried to set this
system up on blends machine but we have had some issues with that. The
web sever returns a 500 but logs are empty which makes it difficult to
identify. I haven't had the opportunity to detailed look into this but
i'll doing this soon. This I guess is some configuration issue as I am
running the same code on my local system perfectly.

Work Ahead:

1) Finish bugs API
2) Enhance UI after discussion with mentors. Optimize code to reduce
response time.
2) Write documentation.

The code is available on alioth[5]. 'Web-dev-stable' is the most
recent branch of code.

[1] : http://wiki.debian.org/SummerOfCode2012/Projects#Improving_Debian_Team_Activity_Metrics
[2] : http://wiki.debian.org/SummerOfCode2012/StudentApplications/VipinNair
[3] : http://swvist.github.com/teammetrics/ui/
[4] : http://swvist.github.com/teammetrics/ui/js.html
[5] : https://alioth.debian.org/projects/teammetrics/

Vipin Nair
National Institute of Technology, Calicut

More information about the Soc-coordination mailing list