We do occasionally allow ourselves some fun in the office (data-driven of course!)…
As you probably (don’t) know, Matt and I are avid climbers, and it seemed to us that there was no easy way of logging all your hard yards, 7c’s and broken fingernails over at the climbing wall. Hhmm, data, relationships, feedback, user-interface, ok it is missing any serious algo work, but otherwise this looked like it might be worth us building. Here is the li’l website we built: www.gscore.co.uk. The app is currently in trial at select walls and if we get some interest we might roll out it out to a wider audience.
The front-end is built using Flask (and the only guy to go to there is Miguel Grinberg; if I haven’t mentioned him before check out his tutorials and here’s a quick plug for his book). Flask is very enjoyable to work with and lets you get things done fairly quickly. What you don’t understand you can usually figure out.
The hard work (as ever!) is done behind the scenes and is handled by a PostgreSQL database. I use SQLAlchemy (really awesome stuff, particularly if you don’t come from a SQL background; check out Mike Bayer’s tutorials here if you want to see it in action – fun as well as informative). The database is designed with different users in mind:
(i) Climbers we have already mentioned (elogbook, motivational & feedback tool);
(ii) Climbing Centres (to better monitor utilisation of their gyms); and,
For those not in the know, Routesetters are the artists whose job it is to create the new and interesting routes every couple of months, keeping the Climbers and the Centres happy. Our database makes sure that all those logged climbs are fed back so our Routesetter can track the popularity of her routes and what people are saying about them.
You will also have spotted that the app ‘knows’ what each climbing wall looks like but that this changes through time (i.e. any route changes at any wall must be reflected in the database). Routesetters are the glue holding this change management process together.
It isn’t there yet, but we’re in the process of adding a social element so that Climbers can track the progress of their friends and heroes. There is no real data analysis to speak of (not yet anyway), but we are looking at some algo’s to try and capture the power output of our climber. Finally, we’ve been experimenting with NFC, QR codes and the like to fully automate the logging process. GPS doesn’t really work for us here but the idea is to make the logging process as automatic and easy as it is with the running and cycling apps.