[Mailman-Developers]
Paid membership system - feedback? - warning: long
Coen de Groot
coen at coachcoen.com
Thu Mar 20 16:04:47 EST 2003
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:
1. The member will stop receiving direct list emails
2. The member will stop receiving digest emails
3. The member will stop receiving monthly password reminders
4. The member will stop receiving admin messages
No email requests will be processed from 'expired' members
5. The member will not be able to send messages to the list, from the
main email address and from any additional posting addresses
6. The member will not be able to change options by email
7. 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:
8. The member will not be able to access the management screen
9. 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
More information about the Mailman-Developers
mailing list