I have been responsible for the web presence of this venerable sports facility for over a decade. It's my first website, and for many years has been a testing ground for new skills and technologies.
The pool itself has been running succcesfully for a few years as a Not-for-Profit Company, after a it was taken over from the District Council by a Community Enterprise Charity. Over the past 14 years the site has taken many forms, and it’s currently running Django, addressing a number of separate concerns as (Django) Apps.
The website part is what most people see, but to a select few it’s fully editable via the Django admin. It’s not rocket science, but content editors can modify pages, images and news articles; the site also houses a couple of more exotic content types such as opening times and internal documents.
One of the challenges faced by the new management has been a need to organise the booking of staff effectively. The original solution was diary in a the reception area, which whilst central, did not have great visibility.
I created a login-protected tool where an active user base of about 70 people can log in to offer their availability for sessions. The pool manager can then select who will cover each session. For those who choose to receive them, SMS messages are sent each morning reminding people when to turn up for work.
This part of the site also takes care of scheduling all the swimming sessions, i.e. when the pool is operating with customers, either publicly or privately. A booking form on the public site allows visitors to view availabilities and request to book private sessions. The whole booking flow is handled by the Django app and includes confirmation emails, sent to customers and pool managers.
In 2013 a set of evacuated tube solar water heaters were donated to the pool. They work by circulating pool water through pipes exposedto the sun. This is effective when it’s sunny — but not so great at night. We decided that it would be fun to control the system with a Raspberry Pi.
The panel controller reads water temperatures from digital thermometers at various points around the circulation system. When the water from the panels is warm enough, a relay switches a central heating pump on, circulating water through the panels and back into the pool.
As well as switching the pump on and off, the Python script running on the ‘Pi publishes the temperature to the website where it’s displayed on a (surprisingly addictive) data dashboard. There’s a more technical write up of how all this works over on the blog
This is the first project that I’ve managed to get onto the front page of Hacker News (for a couple of hours). And that was a pretty good way to discover the Django site didn’t mind a couple of hundred concurrent visitors :)