Triple Crown for Heart Donor Pages
The Triple Crown for Heart is a charity bike event in Vancouver, BC encompassing three mountains: Seymour, Grouse, and Cypress. All proceeds of this event go to the BC Children’s Heart Centre.
This project is hosted on Github.
I’ve been volunteering for this event for the past three years, working on the rider registration and donation site.
Check it out here: http://donate.triplecrownforheart.ca
Each year I’ve had less free time. It really made me think about how I could be more efficient when creating and maintaining the donation site.
- Rider registration and payments
- Rider donation pages
- Emailing when someone has registered or donated
How it works
One of the first decisions was to ditch the rider registration site for Wufoo forms. I chose to use Wufoo for its PayPal support and simple API. It also has a friendly user interface for when the organizers need to update the form or download the rider data.
- A script runs in the background every five minutes fetching information from Wufoo and PayPal
- It updates JSON files in the GitHub repo
- It also emails newly subscribed riders and donors using Mailgun
- The repo is hosted on GitHub pages
- The page is a single page app that renders data from the JSON files
- When a user donates using PayPal, a pass-through variable lets us also save the rider id, donor name, and message
Pros and cons of this approach
- Free hosting
- No need to maintain a server year round
- Easy to modify for next year
- No need to write any backend registration code
- Updates are slow, they take around 5 minutes
- PayPal only (Stripe requires a backend)
- Updates are inefficient, won’t scale well to a very large numbers of riders