Re: [Mailman-Developers] [GSoC 2012] Metrics
George Chatzisofroniou writes:
Author
This model represents an author of the mailing list. It mostly keeps track of the number of postings and number of threads started. It has the following fields:
- authorid – IntegerField
AFAIK every Django object has an internal ID. Why do authors need a separate, human-unfriendly "authorid"?
- authormail – CharField
Authors are people. They typically have names<wink/> and often multiple email addresses. There may also be other information (organization, etc) that is available from the headers.
- totalmails – IntegerField
- totalthreads – IntegerField
- firstmsgdate – DateTimeField
- lastmsgdate – DateTimeField
MailingList
This model counts the total number of postings and threads started.
- totalmails – IntegerField
- totalthreads – IntegerField
longestthread?
Month
Year
Views
To display the metrics the Django template system will be used. To output the charts i will create some custom tags. The three following views will be used:
- General page – On top, there will be general metrics about total authors, total mails and total threads and below three charts (AJAX based)
"AJAX based" doesn't belong in the spec; it's an implementation detail.
that represent number of posts per author, number of threads per author and mailing list’s yearly usage. Even below there will be a number of charts (equal to the number of years of list’s existence) that output monthly usage.
Why multiple charts? If you can afford a 640x480 chart area, with 4 pixel wide bars you can have 160 months > 13 years in one chart. I personally wouldn't hesitate to go to pixel width bars, which gives you > 53 years. I don't think people will be looking at charts for precision, but rather to get an overview.
At the end, there will be tabular data representing the authors
- Author page – Each user will have his own page with his own metrics.
Django Admin page – A ‘Generate’ button will be added to the Django admin page. Settings
The Django app should handle the following configuration parameters:
- Host – Message store data host
- Port – Message store data port
- Masking – A multi-state variable (None, abbreviated, full) for masking email addresses at the results (we don’t want the emails to be spammed)
(1) If at all possible, this should be inherited from the list configuration (DRY). It's not useful if the addresses are available from the archives or by subscribing to the list. (Actually, a really sophisticated spammer might want to attack by spoofing frequent posters on the assumption they're more trusted and more read, but that seems second-order to me.) (2) It would be preferable if authors could supply nicknames, full names, or avatars for this purpose.
Interface to the Mailman core
Metrics class
Generate class
participants (4)
-
Barry Warsaw
-
George Chatzisofroniou
-
Richard Wackerbarth
-
Stephen J. Turnbull