The software foundations of the club operations were refreshed. Not many of you will be interested in this.
On March 16th we changed the foundations of the software (from apache to nginx) and upgraded the bulk of the software to the latest version of python and our foundation framework (Django) from v1.7 to v5.2 (a leap of more than a decade's worth of changes).
Most sailing members of the club will be aware that our "website" has "the usual" self-registration system using email and lets members register and pay for attendance at training courses and sailing trips.
But most people will be unaware that this software was doing all that in 2009, well before this sort of thing was commonplace, and almost unheard of for a student club. This is all due to Tom Playford (alumnus skipper and former Commodore) who wrote the system: "The New Site"
Trip management
Skippers and the CUYC committee are also aware that the public visible part of the software is a tiny fraction of what goes on hidden in the "committee" pages: managing crew registers, putting mixed-ability crews together, balancing all the financial transactions (CUYC turns over about £60,000 a year), assigning training resources to training courses, tracking feedback from surveys, not to mention the webpages attached to sailing trips and courses, the blog articles (you are reading one now) and photo galleries. That is all quite apart from the committee appointments with their unique email addresses (we have 54 of those) and the club mailing lists: the "General" list has 7,000 people on it.
Since 2009 there was a bit of tinkering over the years to 2017, including bringing PayPal online payments into the system (no small task), but in January 2021 things were getting beyond a joke. We were still on python2.7 (obsolete since 2015) and Django 1.1 (which had stopped receiving security updates sometime before the invention of the wheel). An offline version of the system was made to run using python3, but we didn't have the confidence or time to manage a transition of our live system. But we were able to bump up the version we used to the most recent feasible that worked - which was still hugely out of date.
We were stuck on a version of Django which was so old that none of the current tools for fixing things worked. The root cause was a very early design decision (in 2009) to use a particular image handling package, which was then abandoned by the developers (or rather, they went off to do something else entirely and called it an "upgrade") and untangling that was too gnarly to contemplate. That elderly image package package only worked with a similarly ancient Django.
in 2026, suddenly free AI software aids made all the difference. In the space on only 5 weeks of solid effort :-) we had a mostly-working system using the latest python and Django, and the latest versions of the other 24 packages our system used. We had even tested the PayPal integration using PayPal's "sandbox" system, but couldn't test the mailing lists without actually hosting on the SRCF servers [we use, and have always used, the Student Run Computing Facility: SRCF].
A peculiarity of the SRCF is that we can only run one database at a time on our account, so we couldn't run the old and new systems in parallel but had to take a giant leap of confidence. We did this and it was worse than we could possibly imagine. PayPal "sandbox" behaved very differently from their live system, so we had several weeks where we could not accept any payments with much tearing of hair and rending of clothes. Also it seems that the SRCF mailing lists have been broken for months, but our old system had poor monitoring capabilities that so we did not realise that until the shiny new code showed that something was broken.
Nobody will have read this far (this outpouring of frustration is intended for future system maintainers, not current sailors), but the lessons are twofold:
1. mend the roof while it's sunny before the rains come,
2. waiting a decade or so for better tools is sometimes the right approach too.
To read more about the operations hub software, look at How This Works".
Please login to comment.