Systers use GNU mailing list manager Mailman2 which currently uses Python pickle files to store its data.Systers moderators have customized it to make use of PostgreySQL database .They make use of raw SQL statements and python db-api which makes the code :
The project idea aims at making the code :
to use a database) so that the open source world can benefit themselves with the addition of this feature.
Thus,mapping existing schemas of the Systers database to an object oriented paradigm and determination and incorporation of neccesary modifications in the database needs to be done so that it fits cleanly and nicely into Mailman3's Architecture.
Before April 20:
1st MILESTONE COMPLETED
April 20 – May 23(Before the official coding time):
discuss and finalize on the modifications(if any) that needs to be on existing schemas and design of new schemas(if needed to fit cleanly with Mailman3's Architecture)
–> Thus with the help of my mentor I will become absolutely clear about my future goals,the final database implementations that need to be done as well as the approach that I will follow to map the schemas to the Object Oriented Paradigm.
2nd MILESTONE COMPLETED
May 23 – June 18(Official coding period starts):
local database.
–> This will help in testing of the proper working of the entire basic code changes that we will later on incorporate in Systers Sourcecode.
3rd MILESTONE COMPLETED
June 18 – July 5:
4th MILESTONE COMPLETED
JULY 6th MID TERM EVALUATION
July 6 – July 15:
July 15 – July 25:
5th MILESTONE COMPLETED
July 25 – July 31st:
6th MILESTONE COMPLETED
A Buffer of two weeks has been kept for any unpredicatable delay.
Attributes\\ subscriber_id(serial primary key)\\ mailman_key(varchar,unique)\\ preference(int2)\\ format(int2)\\ deleted(boolean)\\
Functions\\ getSubscriber_id_raw()\\ getSubscriber_id_raw_or_die()\\ getSubscriber_id()\\ changePreferences()\\ change_format()\\ get_format()\\
Attributes\\ message_id(serial primary key)\\ sender_id(int references subscriber)\\ subject(varchar)\\ thread_id(int2)\\
Functions\\ createMessage()\\
Attributes
thread_id(serial primary key)\\ thread_name(char)\\ base_message_id(Int referencing message)\\ status(int)\\ parent(int)\\
Functions\\ createthread()\\ newthread()\\ continuethread()\\ threadIDandName()\\ specialize_and_inject()\\ alphanumericOnly()\\ subjectToName()\\
Attributes
subscriber_id(int references Subscriber)\\ thread_id(int not NULL references Thread)\\ preference(int2 not NULL)\\
Functions\\ subscribeTothread()\\ unsubscribeFromThread()\\ override_from_web()\\ override_inner()\\ overrideURL()\\
Attributes
pseudonym(primaty)\\ subscriber_id(int references Subscriber)\\
Functions\\ canonicalize_sender()\\ get_aliases()\\ change_aliases()\\
createDlist()
UnsubscribeFromLIst()
set_disable()
set_digest()
changeAddress()
mergeSubscribers()
enabled()
setFooterText()
===