Web-based membership/transaction database. Continue reading
Still in progress.
The Hartford Bridge Club (HBC) was recognized as the oldest such group in the American Contract Bridge League, the governing agency for contract bridge in North America. The club had more than five hundred members before the pandemic. Unlike most bridge clubs, it was a member-owned organization. The club had a manager, but her contract specified no salary.1 The decision makers consisted of the usual four officers—president, vice-president, secretary, and treasurer—and six “trustees” who usually served three-year terms. Nominees were selected by a committee and elected at the club’s annual meeting in the fall. Additional nominations were possible, but usually the entire slate was elected.
In the fall of 2021 I was asked to serve on the HBC’s Board of Trustees. My three years on that board have been chronicled here. One of the most frustrating experiences for me and for everyone else was the fact that the club, which, had no definite notion of which people were actually members. The count done by the treasurer, Trevor Reeves, was significantly less than the “official” number reported by the club’s manager, Donna Feir. Both were well short of five hundred. No one could find a way to reconcile the two in a systematic manner.
Donna kept track of membership using the ACBLscore program provided by IBM. Its primary purpose was to set up different types of games and tabulate results. It was written decades ago, and it had been updated occasionally. It was written in dBase or something similar that ran in DOS or windows. It did not employ a relational database. The files were in a proprietary format.
The discrepancies persisted throughout the next two years. Near the end of 2023 I decided to try to provide a solution. I interviewed most of the major players. I did not interview Donna because my experience was that she was very nervous about anything that might upset her day-to-day activities. I learned the following:
The club had several lists of members. No automated method connected them:
- The ACBLscore list that Donna maintained. It could be used to print phone lists and masterpoint lists if those fields were kept up to date.
- The contact list associated with the club’s gmail account.
- The “audience” used on the MailChimp account for mailings to all members.
- The list used by the financial people.
- Other ad hoc lists.
I determined that a relatively risk-free system composed of a membership file and a transaction file stored on relational database that everyone could access could probably address many of these issues without a great deal of work. In addition to the main files, I envisioned three background tables:
- A table for transaction types that contained the fiscal year2, a description, and a code designating the main type.
- A main type table to discriminate between memberships and contributions. There were not many of the latter, but better to plan than neglect.
- A user table for security.
I envisioned only one output program that could produce a list on the screen, a count of the number of items selected, or create a csv3 file to be downloaded. If that proved insufficient, I felt confident of being to add more options later.
I also saw an opportunity to integrate data from my ACBL roster. So, users could easily compare what was on the system’s members file with what the ACBL had: address, phone numbers, email address, masterpoints, etc.
In my heyday I could have whipped this sort of thing out on the AS/400 in less than a week. However, I had done almost no programming at all since the beginning of the pandemic and precious little in the previous four or five years. Furthermore, I would be working in a less forgiving environment than what I was accustomed to. I would not have the AS/400 tools and support, and I had never designed an Internet-based system to run on php scripts, a MySQL database, and an Apache server. It also did not help that I was in my mid-seventies and becoming more senile every day.
In early 2022 I had asked for a csv file that contained one record for each active4 member of the club. I received it in early February. I was able to use it to populate the “HBC?” field on the players table. I used this information to provide the club with accurate breakdowns of the number of active players in various masterpoint ranges.
1. An annual “honorarium” was voted annually to the manager and other officials.
2. The club’s fiscal year began on November 1. Thus fiscal 2025 ran from 11/01/24 to 10/31/25.
3. A file with the extension “.csv” contains rows that are formatted identically. Fields (columns) are separated by a comma or another delimiter. Spreadsheet programs such as Excel can read these files.
4. Some club members were not required to pay the prescribed annual dues in order to participate as members. I assumed that every person on the file had paid the dues, but there were doubtless some who were not required to.