[Mailman-Developers] [GSoC 2012] Metrics

George Chatzisofroniou sophron at latthi.com
Thu May 3 01:04:34 CEST 2012


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:

- 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.


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


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.

[1]: http://sophron.latthi.com/gsoc-mailman/?p=12

George Chatzisofroniou

More information about the Mailman-Developers mailing list