![]() Moving all of the club’s membership accounting to my web app was well beyond the scope of this task, so accessing membership info via the Google Sheets API seemed like a perfect solution for the problem at hand. Google docs can be shared with that address, and the service account can then access those specific documents. Thankfully, this is not the case: service accounts have their own email addresses. The Google API has a concept of service accounts, but I used to mistakenly believe that a service account had automatic access to all the documents available to the service account’s creator - this would have made it a less appealing solution. Being a club of modest means with a DIY ethos, the member list is stored in a private Google sheet owned by the club. Knowing this allows the club to follow up with prompts for membership signups, or suggested donations. ![]() The club cares to know whether guests are also paying members. To solve this, we simply sent a confirmation link to that email and asked the member signing in to click the link. An easy way to abuse this might be to use a random email, or the email of a paying member. ![]() ![]() It’s self service, and makes it easy to re-use our guests’ emails. A Simple solutionĪt a minimum, we could replace the paper form with a webform, so this is what I started with. Both processes failed to achieve the stated goals, as staffers were too busy to track every single person, and following up on a hardly-legible list of emails was painful. There existed a couple of manual approaches: one was to ask club staffers to track how many people came to the club on a given day, the other was to ask people to write their name and emails on a paper list. The club needed to track attendance in order to know which week nights were the most popular, and to encourage regular goers to sign up as club members. Just because I’ve been on hiatus from work doesn’t mean I don’t ever get an itch for coding! After building software and a physical labeling system to operate the SF Go Club’s library, I was approached with another problem to solve.
0 Comments
Leave a Reply. |