As regular readers will be aware, MMU’s move to Moodle is part of a larger initiative designed to make a step change improvement in the student experience. The initiative, known as EQAL – Enhancing the Quality of Assessment for Learning, coordinates work on curriculum rules, quality processes, learning systems and admin systems, and includes introduction of new institution-wide systems for coursework submission (using a custom development) and timetabling (using Scientia). The need for easy-to-access, up-to-date, definitive timetable information has been a recurrent request in focus group and survey work, and featured strongly in our survey of students’ mobile information needs. This post describes how we used a service-oriented approach to give students access to timetable information.
We had originally planned to use Scientia’s Enterprise Reporting Database component to make timetable information available in Moodle and via students’ mobiles, but in late summer we learned that this could not be deployed for the start of term, so an intense period of re-thinking began.
Scientia includes a web publishing feature, known as SWS – Scientia Web Services, which produces HTML reports of student and course timetables specified via querystring parameters. Whilst incredibly fast, output from SWS lacks semantic mark-up, and makes extensive use of tables to control screen layout. We realised that this would impose limitations on what we could achieve, but we also became aware of two further complications:
- The scale and complexity of scheduling the entire MMU timetable meant that for performance reasons the scheduling problem was split into three geographically-distinct timetables: Crewe, Didbsury/Gaskell and all other Manchester campuses
- Each separate timetable had an SWS report server that ran on a non-standard port that wasn’t available over our guest wireless network (which we expected a lot of students to use)
We therefore needed to find a method of publishing web timetables that would work over wifi and on and off campus, and would hide from our students the unfortunate complexities created by having 3 separate timetable systems.
We were also aware that some but not all students would have personal timetables, and the set of students with personal timetables would change as they were allocated to particular seminars and taught groups. The aim of the EQAL project for September 2011 was to ensure that all level 3 and 4 students received personal timetables. However, some parts of the institution had committed to supplying the data necessary to give students on levels 5 and 6 personal timetables too. Our web timetable architecture therefore needed to ensure that every student saw either a personal timetable (if one were available) or their course timetable, and that this information stayed up to date.
We worked closely with colleagues on the timetabling project and with Scientia consultants to develop an architecture that ensured each student could access the best available timetable for them. A lookup table was created that indicated for any given student ID their campus (so we knew which SWS server to generate a report from), their course, and whether they had an individual timetable. Queries of this lookup table were wrapped as a simple RSS web service that returned for any given user ID, a customised URL for displaying their web timetable.
The customised URL included the port number of the SWS server that held the student’s timetable and specified whether the course or personal timetable report should be produced. The page then acted as a port 80 proxy to the SWS server so that the output could be displayed off campus or over wifi. The page also injected some CSS and some form elements to improve readability and make it easy to change the date and day range displayed.
Our architecture for displaying web timetables is shown below:
We added a custom WebPart to our myMMU SharePoint portal that called the timetable RSS web service for the authenticated user and set the href property of the timetable icon to take the student to the appropriate personal or course timetable for them.