The Launch of UCL API
A little bit of history, and a look at the future
The story of UCL API started on the 13th of January 2016 when a few of us from TechSoc met Janina from ISD (UCL Information Services Division) to talk about future opportunities for collaboration.From this first meeting came the now regular TechSoc x ISD meetups, where we explored how we could go about creating an open API. We have also collaborated on LearnHack 2 & 3, hackathons focused on building apps and websites aiming to improve UCL.
These collaboration efforts led us to pitching the UCL API at the ISD all staff meeting in April 2016. At this event we set out our mission of creating a ridiculously simple, documentation first, and comprehensive API around UCL’s digital services. Mike Cope, the director of ISD, agreed to be a champion for the project.
Our initial focus was building the room booking system for the new engineering hub, enghub.io. This project, also know as Roomie McRoomface, allowed us to learn about building a scalable API while also controlling the entire software stack.
While developing enghub.io, we also ran into our first big technical blocker: Integrating Shibboleth and Nginx. Shibboleth is essentially is an old, more complex, and generally worse version of OAuth. It’s used at UCL for federated authentication.
Thanks to some documentation by Harvard University and Chris’ incredible DevOps skills we overcame this challenge and doing so he contributed massively to global shibboleth research. (Chris joined the team in November and brought the total to 5 🎉)
Chris describes the problems we ran into and his technical solution in his two part blog post series:
How the Engineering Hub room booking system’s login system works, and how you, too, can build something cool with UCL…blog.techsoc.io
The technicalities of part 1: how to build an Nginx + Shibboleth login system atop a RESTful API.blog.techsoc.io
After launching enghub.io, the focus shifted back to our primary goal: Bringing the UCL API to life. After a few months of hard work, we can announce that we have built an API for the room bookings service, as well as the scaffolding around it. And you can use it now! 😍
Our big technical challenge with the room bookings service revolved around connecting to an Oracle database within Django from AWS. Of course, Chris has you covered with another quality blog post.
Two proprietary pieces of software in one title! Stallman would be triggered… (and yes, the solution is horrible)blog.techsoc.io
The launch of the room bookings service today is only the beginning of the UCL API. The ultimate goal is to build awesome, well documented APIs around essentially every digital service that UCL offers. We’re setting the UCL API project out to be a permanent, student-led effort, so that this goal can be continuously pursued even as we and our successors graduate.
Next up in our roadmap are APIs for UCLU and Moodle, but there’s so much more we can achieve in the even longer term. Our roadmap is public, so feel free to vote on what you’d most like to see!
Everything is open source and there’s a lot of work left to be done! If you want to help out, feel free to open issues and pull requests on the repos. The big ones are the API itself, and the documentation. We welcome any and all contributions 💖