[Mailman-Developers] Paid membership system - feedback? - warning: long

Hi there,
I will be changing a Mailman discussion list into a paid discussion list. As far as I can tell there isn't anything readily available for this
So, unless anyone tells me otherwise, I will have to develop something myself
I will be quite happy to make the end result available to anyone else who might find it useful
Whilst I have a lot of programming experience, this will be my first Python project, so wish me luck :-)
Oh, and I've got about a week or so to get a beta version, so not too much pressure
Initially I will be importing the payments from a file which I maintain using different software. At a later stage everything will have to be integrated and automated
In case anyone is interested, I have included some documentation of my plans below. Feel free to give me your feedback, especially with ideas on what will be impossible or what can be done better differently.
I assume this is the right place for this email (size and subject). If not please let me know, just be gentle :-)
See below for my documentation
Coen
Introduction This is the functional specification for the first phase of the Mailman membership system
During phase 1 part of the process will still be done manually and/or by other systems. During a later phase all parts will be integrated and automated
The following functions will be part of the system:
a.. Maintaining a table of free and paid membership periods for each list member b.. Email renewal reminders c.. Blocking access past the membership period
The following change(s) will be required to the existing Mailman system, to facilitate the new functionality:
a.. When someone unsubscribes, the details will be stored in a new list of 'previously subscribed' members b.. When someone resubscribes, any periods will be copied from the 'previously subscribed' list c.. When someone resubscribes who is on the 'previously subscribed' list, and there isn't any valid period, they will be treated the same as if they are 'expired' (see below)
Area 1 - Membership periods There are three types of membership period:
1.. Trial period 2.. Paid period 3.. Free period
Membership periods can be set up as follows:
1.. Batch trial period set up 2.. Batch paid period set up 3.. Batch free period set up 4.. Automatic trial period set up, as a result of subscribing Batch trial period set up A process will read a structured file which lists recent sign ups. For each list member this contains the following information:
1.. Email address 2.. Date of sign up
This file will be created by hand, from the sign-up log. Only entries after 7/2/03 will be used. Members who are known to have been a member before 7/2/03 will also be excluded
Step 1 - File import The file will be read and each entry will be recorded against the list of members. A period tuple will be added with the period type ('trial'), period start and period end. The period end will be two months minus 1 day after the period start
In the case of duplicate entries (against the same email address), the second entry will be ignored and an error message will be generated
If the member doesn't exist, then s/he has probably unsubscribed since, so generate an error message and ignore
Step 2 - Default setting All other members, those who don't yet have a trial membership period will be given a trial period which ends 6th April 2003. A period tuple will be added with the type period ('trial'), period start (empty) and period end (6/4/03)
Log A log will be created which lists all period which were created, showing the email address, start date, end date, period type
Batch paid period set up A process will read a structured file which lists payments. For each entry this contains the following information:
1.. List email address 2.. Period in months (typically 12, but might be 13 for anyone who ended up paying a little extra)
This file will be created by hand
For each member which is listed, a period tuple will be added with the period type ('paid'), start date (the day after the end of the trial period), end date (the specified number of months after the start date, minus 1 day)
Log A log will be created which lists all period which were created, showing the email address, start date, end date, period type
Batch free period set up A process will read a structured file which lists free periods. For each entry this contains the following information:
1.. List email address 2.. Period in months, or 0 for unlimited 3.. Type of free period ('benefit' or 'gift') Log A log will be created which lists all period which were created, showing the email address, start date, end date, period type
Automatic trial set up, after subscribing When someone subscribes who hasn't subscribed before (i.e. there isn't already an entry for this email address), the system automatically gives them a 2 month trial period. This will be done as part of the normal subscribe function, for subscriptions via the website and via email
Area 2 - Email renewal reminders Note: the standard welcome message will be changed to explain the trial period
The following emails may be sent out by the system:
1.. 1 month after start of trial membership, if not yet paid, encouragement to pay, plus info on how to get the most from the list. Don't send if more than 3 days overdue. The wording of the email will allow for slightly late sending 2.. 2 weeks before end of trial membership, if not yet paid, reminder of end of trial period. Don't send if more than 2 days overdue. The wording of the email will allow for slightly late sending 3.. 3 days before end of trial membership, if not yet paid, final warning. Don't send if more than 1 day overdue. The wording of the email will allow for slightly late sending
A daily process will be run which checks for messages that need to be sent
Sent messages are recorded by adding a tuple to the list member, recording date and type of message). This is to prevent messages being sent twice
Area 3 - Blocking access A daily process will check for any members whose membership has just expired. As far as the system is concerned, any member who does not have a membership period which covers today is 'expired'
Any member which has become 'expired' today will be sent an email with notification of removal and information about any free options. And an 'expired' flag will be set
No messages will be sent to 'expired' members:
The member will stop receiving direct list emails
The member will stop receiving digest emails
The member will stop receiving monthly password reminders
The member will stop receiving admin messages
No email requests will be processed from 'expired' members
The member will not be able to send messages to the list, from the
main email address and from any additional posting addresses
The member will not be able to change options by email
The member will not be able to subscribe again by email
'Expired' members will not be able to make any changes via the website interface:
The member will not be able to access the management screen
The member will not be able to subscribe again (at least not with
any known email address) via the website
No more direct list emails When building the distribution list for direct emails, 'expired' members will be excluded
No more digest list emails When building the distribution list for digest emails, 'expired' members will be excluded
No more monthly password reminder emails 'Expired' members won't be send monthly password reminder emails
No more admin emails The list has a facility for 'direct' emails, which go directly to normal members and to digest members. When building the distribution list for 'direct' emails, 'expired' members will be excluded
No more sending emails to the list When an email gets sent to the list from an 'expired' member, the list will discard the message and return a friendly reply to the member, explaining how his/her membership has expired, at what date, and what they can do about this
No access to management screen When an 'expired' member goes to the management screen, they will see a very simple screen which explains the expired status and what they can do about it
Can't change options via email When an 'expired' member tries to change options via email, they will receive a friendly reply which explains that their membership is expired, at what date, and what they can do about this
Can't resubscribe via the website When an 'expired' member tries to resubscribe via the website they will see a screen which explains the expired status and what they can do about it
Can't resubscribe via email When an 'expired' member tries to resubscribe via email they will receive a friendly reply which explains that their membership is expired, at what date, and what they can do about this
participants (1)
-
Coen de Groot