Co-ordinating and logging informal runs and rides

In my post about Little Stoke Parkrun, I suggested that a computerized system for co-ordinating and recording informal runs, so that people could do something like Parkrun, but without anyone being able to demand anything from them on the excuse of them being an “organization”, would be useful.

I’m a programmer, and have some ideas on what such a system would be like, but I don’t work on web or mobile systems, so I’m not well-placed to implement it myself. The nearest existing idea that I can find is 5K Flash Mob in the USA; but that’s a group, not a system.

There would be two parts to the system, one of them running on a web server, to co-ordinate and announce events, and to record performance centrally (for those who wish to have such a record), and the other a mobile app, using the device’s GPS to track the route and measure speed, distance and time (and also, perhaps, to give directions, downloaded from the web server).

Both parts of the software would be published as open source, so you could download and customize a copy to run on your own server, rather than having one big central server for all groups to use. Thus, it would be a strongly decentralized system, and each server would need little enough resources that an individual with moderate money to spend on sharing their hobby could rent a virtual server for it from a cloud provider. However, as some people would have accounts on several such servers, there should be a way to cross-link accounts between servers.

So, what would it look like in practice, described in less-technical terms?

To start with, someone wanting to arrange an event would need an account on a server. If no server covered the type of event they wanted to arrange, they could set one up; there would be instructions on how to do this, on the site holding the program code. (I’m using the term “arrange”, rather than “organize”, because I want it to be clear that this is for making arrangements to run (etc) at particular times and places; using it as part of an organization would be a matter for the organization, not for the software.)

Using their personal home page on the server, they would create a page for the event, and the server would automatically announce it to anyone who had subscribed to events that match the description given. The event page will have a normal URL, which can also be emailed, texted, posted on social media, etc; and it could also optionally be put on a page listing events hosted on that server. It’s important that publicity like this is optional, because people may want to arrange private events, or may be arranging events that their government wouldn’t approve of; for example, in China, where protests are clamped down on, people go for a “group stroll” instead. There would be an option for the event to be a regular repeating one; and also a surprise option, by which the exact start location is only revealed near the time. Also, it would be possible to have more than one start location and more than one route, for synchronized events in several places; and also specifying a location and route at all would be optional; the event could simply be “run 5k wherever you are, on a particular day”, for example.

Users getting the URL could register on the page that they will take part (or can download the details without registering, if that server installation has strong privacy enabled), and then turn up at the time and place appointed, possibly getting the last stage of the details as they approach, if it is a surprise event.

Then they run, cycle, walk, swim, or do whatever other form of activity the event specifies. The phone app records their performance (and checks that they do follow the appointed route and don’t cheat by taking short-cuts).

With some more sophisticated programming, there could be a “maximum surprise” option, for only the arranger knowing the route in advance, and participants being shown the route on their phones as they go along.

As each participant finishes, which will usually be by arriving at a finish line, but could be by keeping going for a specified time (such as for some cycling time trials, where you aim for the maximum distance in a set time) or some other finish criteria, their phone would send their performance details to the server, which would have similar display functionality to the Parkrun server or any of the various commercial sports training apps. This would be optional; obviously, those going for a “group stroll” in China might prefer not to have their details logged (or at least, not any more than the cell network logs things already).

Possible extras include having a device (phone, tablet, etc) able to scan barcodes (or detect RFID chips, etc) at the finish line, so participants don’t have to bring GPS-capable smartphones; and having an option by which the event proposer (and perhaps the other participants) can see where all the participants are (or where their phones last reported them as being) to make sure no-one is left behind with a broken ankle on a foggy mountain trail. Perhaps an “emergency button” on the app, too, for that matter? And some extras for making it suitable for sponsored events, to calculate how much each participant has raised (and perhaps even to do arrange the fund transfers, with suitable permissions, or at least to send reminders to participants’ sponsors).

Anyway, that’s just an outline to get people thinking about it. If I were familiar with web and database stuff, and with phone programming, I’d be tempted to have a go myself, but I’ve already got a backlog of projects in areas I already understand, so I’m simply putting the idea out there for someone else to run with (sorry)!