Christian, developer and coffee addict

UCAS, universities and open data

Recently, as many of you will know, I've been applying to start university for the academic year 2013/2014 so I've been once again exposed to the world of pain that is the UCAS application system. I'm aiming to study something around the politics and philosophy area, with Politics, Philosophy and Economics (PPE) at Oxford being my top choice.

In the UK, we have a system called UCAS - basically, this is a centralised application system which means you can apply to five institutions at a time whilst only jumping through one set of hoops. The system is good in that respect - it means you know how things will work. Basically, you sign up, enter personal details and your qualifications, write a personal statement, pay £23, and then wait. And wait, and wait. It's a bit technically antiquated and is built in dodgy ASP and tables though, unfortunately. There's no iPhone app, and worst of all misdemeanours, passwords aren't encrypted. But I'll leave them to that, for now.

After having put my application in about a fortnight ago, I recalled from my previous attempt how annoying the process was. Basically, when you get an offer from a university, UCAS send you an arcane email saying that something has changed in your application. They don't tell you what, so you have a nerve-wracking moment of signing into the website to find out. This annoyed me because:

So, from that point on, I set out to build my own solution to the three problems. In the end, using the wonderful programming language that is Ruby and quite a few open source projects such as Mechanize and Nokogiri, I built a screen scraper which logs into UCAS with my username and password, reads all the applications and their statuses, stores this in a Redis database and lets me know of any changes by SMS and email.

This is seriously awesome because it solves all the annoyances:

Of course, I open-sourced my work - you can download it and run it yourself by cloning my project from GitHub. There are instructions there on how to set it up - I just run it in a cron job every minute.

I then decided to take this what I'd done a little further and make myself a frontend. Using Sinatra as the web framework (no need for Rails), I built a small web page that reads from the Redis store and provides a public record of my applications. You can find it and see how things are going (no offers so far!) at http://ucas.tim-rogers.co.uk.

UCAS Track

Some would say that this was a bit of an exhibitionist move, but I think it's pretty cool. And others seem to like it too. The feedback I've heard has been pretty great, and a good friend of mine @lawrencejob actually said to me yesterday that looking at it is strangely addictive! As with the backend, the frontend is also available for use from my GitHub repo here.

What I've been doing has really inspired me to look more into open data in this area and its promotion - I think keeping track of your application is a bit more of an edge case and not something that the average applicant cares about, but I'd really like to see more done around choosing your university course. More information or existing information better presented can only be a good thing. I feel like I'm going to do something in this space, so watch out.

I've been speaking to UCAS about this myself, and am having a call with them next week about it and what they could be doing better. It'd be nice to (a) persuade them to make the Track system better and (b) get some more open data out there. I'll let you know how this goes in another blog.

In my search, I've also come across the "Higher Education Funding Council for England" (a mouthful, I know) data from Unistats which is a great resource. This provides an API of all the institutions and courses in the UK with permissive licensing. The schema isn't too great, but it's usable. I've built a quick Ruby gem to allow people to use it as well, including myself. You'll find that at https://github.com/timrogers/unistats. I'm looking forward to playing with this API and seeing what I can put together.

So, what do you think? Do you like what I've worked on so far, and how would you like to see open data about further education used?

Like this? I'll email you next time.
comments powered by Disqus