Back in May of this year I was involved in the planning for the inaugural CodeTheCity event that was to take place in Aberdeen the following month. Initially the event was going to be billed as another hackathon-type event doing stuff with Aberdeen-based open data. However, between the five of us who were putting the event together we decided to drop the reference to the hackathon term and to make it more approachable, more attractive even, to the non-developer community. As well as involving local (and further afield) developers, we also wanted to involve the community in Aberdeen to ensure they got something out of it that they actually wanted. This led to the CodeTheCity name idea. Not only was it perfect for Aberdeen but could easily be re-run in other cities around the world under the same umbrella.
The Code for Europe project involves three key groups which all need to play a part for the project to be a success. They are (in no particular order as they are all equally important) :
- The council service providers
- The citizens of the city
- The software solutions development team
From the perspective of Code for Europe it was our upfront aim to use the CodeTheCity event as a PR exercise to get the word out about what we were doing and to engage with the all-important people of Aberdeen. After all, what better way to find out what they want than asking them?
The same was true of the council service providers. It was their chance to let us know what they actually wanted rather than being presented with some new system and told to use it.
The initial ideas discussions at the start of the CodeTheCity weekend revealed just how excited and engaged people were when they realised they were being listened to. It was like kids in a sweet shop but with the kids told they could have whatever new sweets they could imagine and the dentist would never find out.
One of the ideas was something for matching up volunteers (with a given skill set) with volunteering opportunities at community groups.
Another idea was for making people aware of physical exercise classes in the city.
Once reviewed it became clear that several of the ideas had a common theme – matching up people with opportunities / events at venues. Thus was born the idea of what we called the ‘MatchTheCity backend engine.’
The MatchTheCity backend engine consisted of a simple collection of objects as follows:
- Venues – the places where things take place
- Activities – the things that take place
- Opportunities – the event that takes place at a given reoccurring time at a given venue
- Skills – the skills someone requires to take part in the opportunity.
In order for the generic model to work it was decided that the skills would become optional, allowing the following kind of scenarios:
- Opportunity for a volunteer with Excel skills required for a book keeping session at Group X
- Beginners Swimming class at Hazelhead pool for people with no swimming experience
- Advanced Swimming class at Hazelhead pool for people with basic swimming experience
Whilst I built the prototype engine in Ruby on Rails the other members of the team sourced the data to populate it with.
Some of the data was easy to capture by copying a list of skills from a recruitment website, while other data required some scrapers to be written. But spare a thought for Ian who had to transcribe a packed swimming pool timetable from a complex PDF.
As the event drew to a close on the Sunday it was time for the teams to demo their weekend’s creations. Our MatchTheCity engine was well received and even managed to top the public vote at the end of the event.
Beyond the Event
Unfortunately it is all too common for momentum to fall flat as soon as a hack event ends and great ideas are left to gather dust. However, CodeTheCity has gone against the usual tide and at least three of the projects are still being continued several months later.
The biggest legacy so far is that there is still an excitement amongst the non-developers who took part in the event. And from the perspective of Code for Europe, it identified the second phase project that we will be working on, based around the sports and activities discovery.
In the weeks following CodeTheCity, the MatchTheCity data provided an easily accessible dataset and code reuse example to power a simple Android app based on the proof of concept Car Park app I’d built. The venues data has also been used to add content to the map on my development Open311 server.