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:
The Django app should handle some configuration parameters, like:
to be shown in the charts
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.
In order to store statistical data, the app will use some Django models:
subscriber such as total posts, total threads started, date of last message, subscription date, average of posts sent per day
stored here such as total posts, total threads and two foreign keys pointing the month and year models
threads for each year
To display the metrics some views will be used:
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.