At the University of Warwick Library, the Resource Delivery Team has provided a Course Extracts service since 2006. The service has been very popular, and demand continues to grow. The increasing popularity of the service made it evident that the original, labour intensive process of uploading scans to a website was becoming difficult to manage and sustain.
We signed up to the Digital Content Store, which eliminated the need for us to store and manage scans ourselves. When the Course Content API became available, we were interested to see if we could use it to dynamically generate a replacement for the old, manually maintained, Course Extracts website.
The API provided two methods that looked as if we could use them. The 'GetCourses' method provides a list of all courses for the HEI, in this case Warwick. The 'GetCourseContent' method returns links to the scans for a course and associated metadata, including bibliographic details.
We built a 'proof of concept' first to see what a replacement for the old website using the API might look like. The Resource Delivery Team were happy with the result and considered that it would be acceptable to our users. We then built the production system in January and February 2017. We used ASP. Net MVC and ASP. Net Web API, with a Microsoft SQL Server 2012 database.
The first step was to plan how the new system would work. The old site consisted of a set of static departmental web pages that listed module names. Each module name linked to a further web page that listed links to scans, along with bibliographic details. We had a list of departments, as well as the prefixes that each department uses for their module codes. For example, IB is one of the module prefixes used by Warwick Business School. We designed the new system so that Resource Delivery could add departments to the database, and then add departmental prefixes linked to departments. Managing the list of departments and prefixes is one of the very few manual processes required by the new system. The system dynamically generates a page listing of all departments, and navigating down from this, pages listing modules by department. When the user follows a link to a module this makes a live call to the 'GetCourseContent' method of the API, and dynamically generates a page of links to scans, along with bibliographic details, from the API response. We also added a 'type ahead' module search feature.
A scheduled job calls the 'GetCourses' method every night to update courses in the system. When the query runs, the module prefixes previously added map courses to departments in the database. The course update job can also be run manually if required. Currently it takes less than 8 seconds to update 644 courses.
It is probably worth mentioning how we handle authentication. We decided to require authentication via Shibboleth for users as soon as they navigated to the application. If a user wants to download a scan they will have to authenticate anyway, so we decided to ensure that they had already done so rather than interrupting a download. Warwick uses Shibboleth extensively for single sign on, so the chances are that they have already authenticated elsewhere.
We completed the system in mid-February 2017. The Resource Delivery Team presented it to various stakeholder groups who had an interest in the old system. The response has been positive. There was concern about the timing of the change over to the new system, as it looked like it might coincide with exam season. For this reason, we are delaying the full transition until the beginning of July 2017.
About the Author
Rob Talbot has been the Digital Development Manager at the University of Warwick Library from January 2012. He is responsible for developing software solutions for the Library. He previously worked for 10 years in Further Education developing software solutions for E-Learning, and prior to that was a lecturer in FE.
Got the writing bug?
Our new website has undergone a number of changes, one of which is the exciting relaunch of our HE sector blogs. Each month will see the release of two blogs - one on general issues that are relevant and important to the HE sector, and one dedicated to the DCS. A key way that we're changing our blogs is to make them more inclusive for the HE community. So while a CLA authored blog will be published each month, we're also looking for external guest writers to contribute the month's other blog. If you are interested in writing for us, either on an issue you feel is important to the HE sector, or on your experiences with the DCS, then please get in touch.