[GSoC 2012] Metrics
Hello,
I'm sending a report of my progress for the last two weeks (containing an outline of my project).
The following report is also posted in my blog 1.
-- The last two weeks i’m into learning the Django web framework in more detail.
I’m also thinking to rearrange the GSoC schedule a bit. I’ll start writing code on the bonding period, so i can have more time during my university’s exams (starting on half of June).
Finally, i came up with an outline of my project. Here it is:
Settings
The Django app should handle some configuration parameters, like:
- Maximum number of the subscribers of a mailing list the user wants to be shown in the charts
- A multi-state variable (None, abbreviated, full) for masking email addresses at the results (we don’t want the emails to be spammed)
Apart from these, some parameters to establish a connection to the message store (such as host or port) will be added.
Models
In order to store statistical data, the app will use some Django models:
- Author – This model will store specific information for each subscriber such as total posts, total threads started, date of last message, subscription date, average of posts sent per day
- MailingList – General information about the mailing list will be stored here such as total posts, total threads and two foreign keys pointing the month and year models
- Month – This model will store total posts and threads for each month
- Year – Similar to month model, this one will store total posts and threads for each year
Views
To display the metrics some views will be used:
- A generic view for the mailing list and the top subscribers
- A more detailed page about the participation of a specific subscriber
The graphs will be generated using the PyChart library. (Custom tags are the way that the app will embed the graphs)
Interface to the MM core
The app needs to interact with the Mailman core. I think the best idea is to implement a message bus that will send a notification every time a message is sent (the same way an archiver works). Based on this notification -which will carry the information about the sent message- the app will be ready to update the counts.
Although, in some cases (eg the app is installed after an existing archive or there was an unexpected crash), the message bus should deliver (triggered by a button) more than one notifications (for the whole archive) to the app in order to initialize/recover the metrics. In those cases, the models will be initialized and the generation of the metrics will start over.
Any comments are highly appreciated.
-- George Chatzisofroniou sophron.latthi.com
participants (1)
-
George Chatzisofroniou