Application of Benoit Petit on Debian metrics portal project for GSoC 2013
Name : Benoit Petit
Contact/Email : benoit.petit.info@gmail.com , bpetit on irc
Background : I'm a student at the University of Technology of Belfort-Montbéliard in France, currently in the fourth year of my cursus. I use debian on a server and a homemade router and I've started to learn on it two years ago. I've also learned python scripting. I have worked with the Django framework and the Test Driven Development method during the last 6 months for an internship. During this internship I had to design and create a costumer relationship project, as scalable as possible. The datas to use came from several datasources and one of the most important points was to think about a way to easily manage other sources of datas. I'm operationnal on Django and I use it presently for personnal projects. I have 3 years of experience in other web developments, so I'm operationnal on xHTML, CSS and javascript (I also know a bit JQuery). I often use PostgreSQL and MySQL databases. I use git as my main cvs and to push developed features on web projects, I also know a bit about svn. The Debian metric portal project would be a first collaboration very interesting with debian in which I'll do my best to succeed. Here is my personnal website. Even if I didn't host a lot of my projects with it there is my github account.
Project title : Debian metrics portal
Synopsis : Creating a web metrics portal based on datas such as those from the UDD database. Such a metrics portal should permit to users to access to a lot of graphical informations from several data sources in the debian project.
Code : Here is the piece of code asked for the application.
Project details : (Quoting the original project page) To improve, one needs to measure, apply changes, and see how the changes affect the observed quality. In Debian, we have a lot of project-wide metrics, Statistics, and graphs. Unfortunately they are scattered and maintained in a non-coordinated manner, resulting in recurrent shortages, and the lack of a uniform interface to view, add, and query Debian metrics. This project aims at building a Debian metrics portal with a uniform (Web) interface to peruse Debian metrics, as well as a uniform (programming) interface to maintain standardized interface to add/remove metrics to be graphed (possibly with different sampling rate) integration of existing graphs in the metrics infrastructure web interface to show daily (or more frequently) updated graphs of the various metrics dynamic web interface to graph, on demand, specific metrics (possibly more than one at a time) over specific time periods (optional) package the developed code to ease deployment on Debian-based machines them.
Benefits to Debian : (Quoting the original project page) This should help Debian in monitoring its strength and deficiencies, and evaluate the usefulness of changes to project processes.
Deliverables : (Quoting the original project page)
- standardized interface to add/remove metrics to be graphed (possibly with different sampling rate)
- integration of existing graphs in the metrics infrastructure
- web interface to show daily (or more frequently) updated graphs of the various metrics
- dynamic web interface to graph, on demand, specific metrics (possibly more than one at a time) over specific time periods
- (optional) package the developed code to ease deployment on Debian-based machines
Project schedule : Here is a gantt diagram containing a more precise schedule. It may be opened with Gantt Project. (django development tools and a local replica of the udd database are ready)
First week: Familiarize with the Debian statistics. Establish with the mentor the priority between statistics to plot.
Second/Third week: Determine with the mentor what are the options of plotting the portal may propose to the users. Determine how many "django apps" are needed and how they have to be designed. Working with a set of small django applications may give the project more scalability. For example an application may be created as an entry point to the metrics generation code. This may work with other applications, each of them would manage how to recover the datas for a given datasource. This way, if a "new" source of datas has to work with the metrics portal, the only required (new) code is the one of a small application that would "translate" the datas to be exploited by the metrics generation part. The metrics generation part may also be composed of several apps following the needs. That kind of apps are called "django reusable apps". That pattern provides a lot of advantages presented in this video.
Fourth week: Build a test server (either virtual or physical, my personnal server can be used) on which each new tested functionality is pushed, to permit to the mentor to validate its behavior. A Nginx and Gunicorn environment may be build (if agreed by the mentor), as I did for my internship.
End of July/August: Develop those applications and build the project. This period includes the tests of the produced code (following the Test Driven Development method).
Last weeks: read debian policies about packaging, package the project.
Exams and other commitments : I have final year exams at the end of june, that should limit the time I can spend on the project before this. After that I'm entirely free to work on the project.
Other summer plans : I have no other summer plans.
Why Debian? : I'm impressed by the reliability and the effectiveness of the debian linux distribution and the reactivity of the organisation to the needs of the users.
I've not applied on other projects. Working with Debian is a priority for me.