Hi, 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 effort. 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/ -- Regards, Vipin Nair National Institute of Technology, Calicut http://swvist.github.com _______________________________________________ Soc-coordination mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination
