Tag Archives: information

The architecture of our open textbook site

I’ve needed to document the technical architecture of the open textbook project, so thought that I’d post it here as well in case this info is useful for anyone. At the very least, it will make for a good read if you are suffering from insomnia late one night.

The virtual hub for our open textbook project in BC is open.bccampus.ca, and I thought I would share a bit about the different technologies & syndication strategies at work on the site. It feels like we have a lot going on under the hood, and this is by no means an exhaustive description of everything. But at 1400 words, it’s plenty long enough.

Almost all the work on the site has been done by one of our developer, Brad Payne, who I cannot give enough kudos to. I have an idea and the next day it’s done. If we had to rely on my hackery I am sure the entire system would have crumbled like a virtual house of cards months ago.

Here is a silly diagram I made trying hard to visually represent the architecture of the sites. Silly in the sense that it follows no prescribed network or system mapping framework other than Clint’s messy mind method.

What the hell was I thinking?

The internet can rest safely tonight knowing that a network architect I will never be :). I’ll try to explain what is going on.

Fundamentally, there are three different technologies in play with the site; WordPress, Equella (our digital repository – I almost wrote Learning Object Repository <slap slap>) and a survey tool called LimeSurvey.

WordPress

We actually have 3 separate WordPress instances running, each taking on a slightly different role on the site.

WordPress instance #1: open.bccampus.ca

First, the entire open site is running on WordPress. It is the hub that we use to pull in a lot of information from the other sites. On this main site, we post stories, news, tutorials and other communicative types of content. We also have a couple of plugins handling some other functions on the site. I won’t go thru the entire list, but two that are quite important are BB Press and Wisyjja Newsletter.

BB Press powers the open textbook faculty forums. We use the forums to support faculty who are reviewing or modifying an open textbook.

Wisyja Newsletters is used to handle our textbook change notification mailing list. Every textbook in our collection has an associated mailing list which faculty can sign up for. We use these lists to send out notifications of textbook changes, or to send out information about ancillary resources that we might find which support the textbook.

Equella

However, as important as forums, mailing lists and communication are, the main function of open.bccampus.ca is to provide a user-friendly front end for faculty and students to access open textbooks in our repository. It is the hub, and this is where things get a bit more complicated as the books that appear on the open site are actually not stored on the open site. We store the actually textbook information in Equella, our digital repository, and use the Equella API to pull the information we need about each textbook out of Equella and onto the open.bccampus.ca site.

Within Equella (we have branded our version of Equella as SOLR) we have created a collection called Open Textbooks to house the resources that are specific to the open textbook project. But the user interface for Equella is not the most friendly. So rather than send faculty & students to Equella to find the textbooks, we instead utilized the Equella API to pull the information about each textbook out of Equella and into the open.bccampus.ca website. We choose this approach not only because we felt that WordPress gave us a friendlier interface, but because we thought that there may be instances when we want to expose our textbook collection to other services and sites (think institutional libraries or centres for teaching and learning, which could have a curated collection of our textbooks housed on their branded website). Using the Equella API gives us that flexibility.

So, here is what a textbook looks like in Equella and that same textbook information looks like on the open site. Same information, different interface. Using the Equella API means we have had to make some compromises with the way the textbook information appears on the open site. For example, none of the url’s on open are active links; a limitation of the API.

Now each textbook can appear in a number of formats; PDF, ePub, website, LaTex, etc. One of our goals is to make the same book available in as many different formats as possible, and we store each of the different formats in Equella. For PDF and ePub, this means storing the files in Equella. For the website, this can mean either a zipped archive of HTML files, or a link to a website. And this is where our second WordPress install comes into play.

WordPress instance #2: PressBooks

For some of the books in our collection, the website version of the book is a WordPress site. But not any old WordPress site. We are using a WordPress plugin called PressBooks that turns WordPress into a book publishing platform. So, the website version of the textbook is actually a Pressbooks site, and we store the link to that Pressbooks site in Equella with the textbook record. That link is pulled into open.bccampus.ca and appears alongside the textbook record as a link that people can click to see the website version of the book.

You can see how this works with this Modern Philosophy textbook. Faculty & students using this book can come to this page on the open site and decide what format they want to get the book in and, if they click on the “Read Online” link, they will be taken to the PressBooks version of the textbook. With any lucky, this will be seamless for them; the only site they will need to come to find any version of the book is the open.bccampus.ca site, which will take them to where they need to go.

WordPress instance #3: WooCommerce

A third instance of WordPress is being used for our print on demand service at SFU. The version of WordPress being used by SFU Document Solutions (our print on demand partner) is running WooCommerce, another WordPress plugin that turns a WordPress site into an e-commerce site. The same process is at work with the printed version as for the website version. We store the link to the appropriate page on the SFU WOCommerce site in Equella and pull that into the open site using the Equella API. When a student clicks on the “Buy a copy of this book” link, they are taken to the correct page on the SFU WooCommerce site to purchase the book.

WordPress – it ain’t just for blogging anymore. But you already knew that.

LimeSurvey

The last bit of technology in use on open.bccampus.ca is an instance of LimeSurvey. Some of the open textbooks in our collection have been reviewed by faculty here in BC. We are using LimeSurvey to capture that review data and (again through the magic of Brad Payne & API’s) are pulling the review information for each book collected in LimeSurvey into the open.bccampus.ca site so that the review appears alongside the textbook. Again, for faculty coming to the site, it should look seamless, like all this data is part of the same textbook. You can see how the LimeSurvey data from the API looks by checking out the reviews of this Calculus textbook at the bottom of the page.

So, as you can see, we have a lot of stuff going on with this one simple site. Our hope is that we will take the complexity of navigating out of the hands of students and faculty and make it as simple and easy for them to find the resources they need by centralizing all the information in one spot – open.bccampus.ca.