My place of study (University of Canterbury) recently invested in a new timetabling system to allocate all student classes [supposedly] with no clashes. While the allocation system itself has been a topic of interest, the web interface provided is a nightmare on its own.
This was all done using python scripts due to the speed at which they can be written and the massive amount of libraries out there. Parsing the XML file using the ‘Beautiful Soup’ python library, I could then use the ‘icalendar’ python library to generate an .ics iCalendar file so my timetable could be imported to iCal or Google Calendar. These sync with both iPhone and Android calendars, so now my calendar is in my pocket at all times.
But it seemed a little redundant to do all this work and keep it to myself. The benefit of python is that Google loves it; the benefit of this is that Google also loves providing awesome free services. Google app engine is a platform to create and deploy web apps that are hosted on Google’s infrastructure. These are free up to a certain resource limit per day and can be written in python, java or Google’s proprietary language, Go.
All my existing python code could be reused and tweaked for deployment. I re-jigged a free CSS template I found online that allowed the site to be viewed nicely on a desktop, tablet or mobile device – something the original University of Canterbury site totally neglected. By entering your student credentials your timetable can be downloaded as an .ics file, and iOS 5 devices can load this directly into the native calendar! I’m still working on changing the interface to an AJAX one to make it seem faster and not hang on some browsers. Also I will work to add integration with Google’s calendar API, so that the events can be loaded straight to your Google calendar, which is ideal for Android devices.
For any University of Canterbury students who would like to use this, click here.