MemberDB - A Membership Database
MemberDB is a membership database application written by me, Stewart Smith (stewart@flamingspork.com) to aid in keeping up to date membership lists for the various organisations I've been involed in.
The package includes both the database schema and a web based interface. The aim is for standards compliant XHTML and CSS.
It is currently being used primarily by Linux Australia and is being set up for Linux Users of Victoria.
Latest News
- Jun 11th 2007 - Moved to the bzr revision control system!
- Oct 21st 2006 - 0.5 released! 0.4 but with bug fixes!
- Aug 2006 - 0.5 tree being used by LUV for their online elections
- Mar 2006 - 0.4.1 is released! Download it now. Fixes BUG#44
- Mar 2006 - 0.4 is released! Download it now.
- Sep 2005 - the 0.4 release is getting close, many bugs fixed and new features. This'll be a nice one!
- Jun 2005 - the MySQL branch has been merged into mainline. The 0.4 development series is now there for MySQL 5.0.6 and above!
- Mar 26th 2005 - Released 0.3.1!
- Bug track with BugZilla.
- Check out my memberdb category in my weblog.
- Current development is going on in the memberdb--mainline--0.4 branch. There is also some interesting stuff in the memberdb--mysql--0.4 branch that will (eventually) make it into 0.4.
New features in 0.4 and 0.5
- The big change in 0.5 is bug fixes that makes it a lot more usable
- Now runs on MySQL 5.0! We no longer support postgresql (patches are, of course, welcome). Instructions for migrating your data are in the README
- Better support for multiple sessions (logged in more than once)
- Better support for older browsers (Netscape 4.7)
- Better support for Safari
- Easy installation procedure (install and go in a few minutes!)
- Tracks history of member details
- Improved error detection on signup form
- Automatic renewal of membership (this will change in future versions, this is a hack required for LA)
- Web interface to edit the email messages sent!
- More resilient to slow mail servers (only send max 10 messages at once)
- Archive mail messages sent
Features
New for the 0.3 release were:
- Election Code (sponsored by Linux Australia)
- Full infrastructure for holding online elections!
- Preferential Voting.
- A member can stand for more than one position (but only get elected into one
- More than one member can hold a position (e.g. three Ordinary Committee Members)
- Ability to set a minimum number of nominations needed before a member can stand for a position (like a nomination and a seconding)
- Ability for people nominating (and accepting) to enter in a spiel
- Fully customisable time periods (when the election is visible, when you can nominate, when you can view candidates, when you can vote, when you can see the results).
- Members can change their vote right up until the close of voting.
- As used in the Linux Australia 2005 Elections!
- Export Members - you can export a list of members to plain text (tab or comma delimited).
- Generates a password for a member when you approve their membership
- Better use of database transactions to ensure consistency.
- Better logging of debug and error messages
- Improved forms infrastructure
- Global administrator priviledge (so you don't have to grant all the individual permissions - although you still can if you want to)
- Use of sorttable.js to make tables sortable browser side (instead of having to do a round trip to the server
- Very preliminary support for MultiViews style URLs (processing PATH_INFO).
- token infrastructure - random long strings to make URLs we send via email to perform activities (e.g. recover password) near impossible to guess. These expire after a couple of days.
Not all of these have a GUI front end yet, but it's all stored in or supported by the database.
- Standards Compliant Web based UI - rendering correctly in all major browsers.
- Online signup and approvals process for members.
- No single "god linke" user in the system - ability to delegate tasks to specific users.
- Customisable user interface and actions (e.g. what to do when a member signs up).
- Support for online voting in elections (e.g. of committee members)
- Multiple organisations in the one database.
- Useful for closely related organisations, or providing a place
to record inter-organisation relationships
- Members being members of more than one organisation
- Useful to track your membership demographic, and what
organisations you should have close relationships to.
- Tracking of club membership over membership periods
- You can find out when somebody became a member, and which
membership periods they have been a member for.
- Events signup (with different user-defined status)
- Track who wants to come to an event, who has paid for an event,
and who didn't show up.
- Membership types
- Paid member, Professional Member, Honorary Member. Anything you
choose!
- Event types
- Social Events, Professional Events, Conference events - any you
choose!
- Tracking of positions in organisations over time
- Who was the Secretary in 1942? Well, you'll have it all tracked
in the database!
The database is designed so that information is never removed from it,
that is the DELETE and UPDATE operations are minimally used. This
ensures that you have a clear audit trail of both membership and
organisational changes.
Screenshots
Here are some screenshots from the current version (0.2) as well during 0.3 development.
Licensing
All memberdb code is released under the GPL. See the included LICENSE file for details. There are a couple of third party libraries that we use. These are kept seperate from the memberdb code (in the www/lib directory) and have their own LICENSE files. They are GPL compatible.
Releases
- 0.5 - released Oct 21st 2006
- memberdb-0.5.tar.gz
- Use the same site-look template from the 0.3 release (and customise for your site
- 0.4.1 - released Apr 3rd 2006
- memberdb-0.4.1.tar.gz (69k) - smaller as doesn't include all the baz directories
- This release fixes BUG#44
- Use the site-look templates from the 0.3 release.
- 0.4 - released Mar 31st 2006
- 0.3.1 - released Mar 26th 2005
- 0.3 - released Jan 16th 2005
- memberdb-0.2.tar.gz (81k) - Released on Jun 13th 2004
- memberdb-0.1.tar.gz (22k) - Released on Feb 17th 2004
Getting the latest and greatest
I am now keeping memberdb in a bzr repository. You can find source repositories at:
$ bzr branch http://www.flamingspork.com/src/memberdb
Documentation
Some related documentation and files:
- Obsolete, but possibly still useful:
History
This database is "Version 2" of what I originally made for the Monash University
CSSE Student Club (several years ago now).
For a year, I was the force insisting that we needed something like
this. The next committee actually liked the idea and liked the fact I'd
already made progress. For the next year, it ran on my trusty iBook
keeping track of about 400 members. Throughout the year, small
improvements were made and various shortcomings were noted.
In 2002, the GAUNIX group at
Monash began to be revitalized (they
admin the student run server YoYo
- aptly named due to the fact it used to go up and down like a....). My
mind began to tick over and thing "Why can't this database be adapted
so any uni club can use it?" There was also added motivation to save
some clubs from the dreaded database-in-an-Excel-spreadsheet monster.
So, when in 2003 I got the job of Vice President of Linux
Australia - yet another use for my once-hack came to life. It was time
to actually get working on Version 2.
What you see before you is a work in progress. The GUI isn't
finished (and I'm pretty sure I still want to fiddle with the backend).
This new version will end up servicing LA and CSSE Student Club.
Hopefully it will also be on yoyo for others to use.
Stewart Smith (stewart@flamingspork.com)