Membership System - accu-org/website-v3 GitHub Wiki

Existing behaviour

  • Subscription
    • Profile screen for an authenticated user, non-member
    • Subscription overview screen for an authenticated user, non-member
    • Subscription screen
      • Subscription types are Full, Full Concession, Basic, Basic Concession and Corporate
      • "The ISDF fee helps UK Standards work through a fund to provide financial assistance to technical experts from the ACCU attending standardisation meetings."
      • "Voluntary donation to a fund that provides free subscriptions to those who are unable to pay through personal financial hardship or national currency restrictions (largely those in Eastern Europe and developing countries)"
    • The system sends an email to the user after successful subscription (text set by membership admin)
    • Worldpay sends an email to [email protected] with details of the transaction
    • The new user's expiration date is set to the <end of the current month> + 1 year
  • Expiration
    • At six and three weeks to the expiration date, and if still not renewed, on the expiry date the system sends the user a reminder email (text set by membership admin)
    • On expiry the user moves to an internal 'grace' state, and stays there for some time (a month?)
    • When they leave the internal 'grace' state, they go to 'lapsed'
    • I don't think there's any behavioural difference between the members who are in grace or are lapsed
    • After some time (another couple of months), the system removes their membership info altogether (losing details of their membership number and past payments)
  • Renewal
    • The user can renew during the last couple of months (ish?) of their membership. The renewal screen is very similar to the subscription screen, but is prepopulated
    • On successful payment:
      • the user's expiration date has one year added to it
      • worldpay sends an email to [email protected] with details of the transaction
      • the payment is recorded
      • details of the previous payment are lost
      • a receipt will show details of the most recent payment
  • Receipts
    • The member's profile has a link to a receipt: Subscription overview screen for a member
    • The receipt: Receipt
  • Admin by Membership Secretary
    • Users and Groups
      • User and Group Page
      • 3 highlighted areas are all I've ever used:
        • Search by username, which populates the list
        • Add Group/User which takes you to a form: New user form
        • Edit action icons which take you to an edit page: User edit form
    • Reports:
      The website report tab has only 3 features that I currently use: the Manage Members/Manage Subs screen, the Mailing Labels for Journals report and the Journal Count report. Reports screen
      • Journal Count
        Journal count report
        It basically calculates the number of CVus needed as number of individual members + 5 * number of corporates + the extras requested (always 30). The number of Overloads is effectively number of CVus - number of Basic members. (Pending modification by addition of a 'Receive hardcopy'.)

      • Mailing Labels for Journals
        Produces a .csv for download of format (NB the Overload/CVu radio buttons don't work):
        "FirstLine","SecondLine","forename1","surname1","address1","address2","address3","town","county","country","postcode","Zone Name","PackingInfo"
        "ACCU","Membership No 00000g expires 31/12/2014","Andy N","Other","12 Acacia Ave","","","BRISTOL","","United Kingdom","AA1 1AA","UK","CVu + Overload"

        • FirstLine is used on the address sheet and is always one of: "ACCU", "ACCU Renewal Reminder" and "ACCU Renewal Due, Last Journal", as appropriate
        • PackingInfo is always one of: "CVu", "CVu + Overload" and "5 CVu + 5 Overload" (though there are UI elements that suggest other numbers of journals could be mentioned here, I don't think they've ever worked - it could be handy though).
        • ZoneInfo
          * For corporates, is always one of: "Corporate", "CorporateOS" (OS means "overseas")
          * For the rest, it's always one of: "UK","EU","Non EU","USA","Canada","Rest of Europe","Rest of World"
          * I'll need to check with the distributor, but I think this could be changed to be one of "UK", "Overseas", "Corporate UK" and "Corporate Overseas"
      • Member counts
        A cronjob runs SQL on the 5th of each month and sends the result to [email protected]. The result looks like:

               xar_desc        COUNT(*)  
               Full Membership 595  
               Full Membership, Concession     19  
               Basic Membership        40  
               Basic Membership, Concession    4  
               Gratis  18  
               Honorary        22  
               Complimentary   39  
               Corporate       23  
               Link to Corporate       1  
               Link to Joint   1  
               Electronic      1
        
      • Donation status
        A cronjob runs SQL on the 5th of each month and sends a report to [email protected]. The results look like:

               current_isdfs   current_donated current_donors  
               45      649     57  
               all_isdfs       all_donated     all_donors  
               47      719     62  
               year    month   isdfs   donated donors  
               2005    9       1       0       0  
               2005    11      1       0       0  
               2012    4       1       0       0  
               2012    7       0       15      2  
               2012    8       2       55      3  
               2012    10      4       3       1  
               2012    11      1       15      2  
               2012    12      1       10      2  
               2013    1       3       95      7  
               2013    2       4       85      4  
               2013    3       3       99      5  
               2013    4       3       26      4  
               2013    5       4       10      1  
               2013    6       2       44      6  
               2013    7       5       71      6  
               2013    8       9       171     15  
               2013    9       3       20      4  
        
      • Notification of each payment
        Worldpay email

    • Manage Members/Manage Subs/Crud for member's info
      Manage members screen
      The ringed sections are what I use:
      * Find by member id and Find by member surname
      Both lead to a CRUD screen for member info: Member edit form * Add Members
      Add member screen * Manage Subscriptions
      Manage subscriptions screen * Modify Config
      Modify config screen
  • Management of mailing lists
    Once per day, the system updates the accu-members mailman list so that it consists of only those members that have currently got the 'Receive Membership Emails?' option selected. It might even do the same for the accu-announce list based on the 'Receive Announcement Emails?' option, but I'm not sure.

Improvement Ideas

  • Admin by Membership Secretary
    • Better entry for standing order payments
      • Not error-prone editing of several fields
      • Generate a receipt automatically
    • Know how membership has changed with time
      • e.g. (though there are probably other, better ways)
        • Record all payments made, not only the last
        • When members are deleted, we remove their personal info but retain an anonymized record of membership
    • Grab an individual CSV for a member's mailing info, so I can print a mailing label
    • Manage member's username and email on the same screen as their mailing and subscription info
    • Make CVu/Overload Mailing Label reports work
    • A way to announce a journal, to those that don't receive a hard-copy, by email
    • Include standing-order members in mailing info report for the month after their expiry (since we usually don't see a statement with their payment until after the mailing info has been produced).
  • Have staff of corporate members with separate credentials
  • Permit joint/group membership (a generalization of corporate?)
  • Permit credit-card payments of ad-hoc amounts
  • Let users see all receipts, not just their last
  • When a member expires (or moves out of grace?), remove them from all mailing lists, not just the managed ones. Complication: mailman subscriptions with email addresses different to the one known to the membership system.
  • Allow members to specify an e-mail address for e-mail list [email protected] separately from the e-mail address for their account. See message [Accu-website] Fwd: [Accu-members] EMail address for accu-members.
⚠️ **GitHub.com Fallback** ⚠️