[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