Hi,

Here's my report. As always, you can also read it in my blog [1].

--

The coding period has started. I’ve already learned a lot of stuff!

Although, I intended to have more work done by now. That’s why i’m
going to speed up in the following days.

Here’s what i’ve done so far:

- I documented the components of the app. I’ve documented storage of
counts, parsing of custom tags and generation of HTML output, basic
interfacing with mailman, coalescor (a daemon that cleans up the
database) and generator (that generates the metrics from scratch).

- I coded the most of my models using polymorphism solutions.

- I’ve described the syntax of my custom tags. The syntax is defined
by the BNF Language description below:

<graph_tag> ::= ‘{%’ ‘GRAPH’ ‘%}’ <on_the_y_axis> <on_the_x_axis>
<where_clause_or_default> ‘{%’ ‘ENDGRAPH’ ‘%}’

<tabulate_tag> := ‘{%’ ‘TABULATE’ ‘%}’ <on_the_y_axis> <on_the_x_axis>
<where_clause_or_default> ‘{%’ ‘ENDTABULATE’ ‘%}’

<on_the_y_axis> ::= <attribute>
| <on_the_y_axis> ‘, ‘ <attribute>

<attribute> ::= <metric_clause>
| <metric_clause> ‘BY’ <property>

<metric_clause> ::= <aggregation_interval> <event_counters>
| <measured_level>

<aggregation_interval> ::= ‘DAILY’
| ‘MONTHLY’
| ‘ANNUAL’
| (* Omitted. Default value: DAILY *)

<event_counters> ::= ‘posts’ (* The number of total posts *)
| ‘threads’ (* The number of total threads started *)

<measured_level> ::= ‘subscribers’ (* The number of total subscribers *)
<on_the_x_axis> ::= ‘FOR’ <time_period>
| ‘FROM’ <start_date> ‘TO’ <end_date>
| ‘SINCE’ <start_date>

<time_period> ::= ‘LAST MONTH’
| ‘LAST DAY’
| ‘YESTERDAY’
| ‘TODAY’
| ‘THIS MONTH’
| ‘THIS YEAR’
| <number> DAYS
| <number> MONTHS
| <number> YEARS

<start_date> ::= ‘YESTERDAY’
| ‘START OF THE MONTH’
| ‘START OF THE YEAR’
| <date>

<end_date> ::= ‘TODAY’
| ‘NOW’

<date> ::= YYYY-MM-DD (* International format defined by ISO (ISO 8601) *)

<where_clause_or_default> ::= <where_clause>
| (* Omitted. Default value: Ommited *)

<where_clause> ::= ‘WHERE’ <constraint>
| <where_clause> ‘AND’ <constraint>

<constraint> ::= <property> ‘STARTSWITH’ <prefix>
| <property> ‘IS’ <value>
| <property> ‘ENDSIN’ <suffix>

<prefix> ::= <literal_string>
<suffix> ::= <literal_string>
--

[1]: http://sophron.latthi.com/gsoc-mailman/

-- 
George Chatzisofroniou
sophron.latthi.com
_______________________________________________
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://wiki.list.org/x/AgA3
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9

Reply via email to