Other University of Lincoln services URIs

Following on from my post about the URI structure in our existing corporate website I’m now taking a brief look at a number of other websites and web applications that we have at the University, WordPress, Blackboard (blackboard.lincoln.ac.uk), SharePoint 2003 (internal – portal.lincoln.ac.uk, external – visit.lincoln.ac.uk) and Posters at Lincoln (posters.lincoln.ac.uk).

WordPress
dev.lincoln.ac.uk

We have an active blogging community here at Lincoln with over 400 registered blogs running on a WordPress MU install. WordPress has built in friendly URIs (permalinks in WordPress terminology) so I was expecting to see a good proportion of blogs that had a good URI structure.

I wrote a script – https://gist.github.com/890378 – which simply grabs the permalink structure for each registered blog so that I can see an aggregated view of the settings that have been set up for each blog.

Here are the results:

Permalink structure Number of blogs
/%year%/%monthnum%/%day%/%postname%/ 404
/%postname%/ 8
no permalink structure 3
/%year%/%postname%/ 2
/articles/%postname%/ 1
/%year%/%monthnum%/%postname%/ 1
/%monthnum%/%year%/%postname%/ 1

96% of blogs are running with the default permalink structure which basically means you have URIs that looks like http://example.dev.lincoln.ac.uk/2011/03/22/hello-world. In terms of readability this does result in URIs that can be easily understood. As for predictability of a specific post’s URI then I think you’re perhaps better off doing a search from the blog’s home page. I did a Google search for “thoughts on WordPress permalinks” and there seems to be a consesus that the default permalink structure is “good enough” SEO wise however there are performance gains by using it over %postname% because it reduces the number of queries WordPress has to do internally to return the correct post.

Blackboard
blackboard.lincoln.ac.uk

The interface of Blackboard comprises of a HTML frameset page which if you read the source code actually explains itself:

“The Blackboard Academic Suite environment includes a header frame with images and buttons customized by the institution and tabs that navigate to different areas within Blackboard Academic Suite. Clicking on a tab will open that area in the content frame. Web pages containing specific content, features, functions, and tools are accessed from the tab areas.”

Basically this means that the home page, regardless of whether or not you’re signed into Blackboard or not is always http://blackboard.lincoln.ac.uk/webapps/portal/frameset.jsp and it also means you can’t directly link to a Blackboard resource (as I’m about to without screwing up the interface). You could say this doesn’t matter at all from an SEO stand point because resources aren’t externally available however I’m can’t help sympathising with someone trying to explain how to access a Blackboard resource over the phone; I’d imagine it would go something like “click on this, now that, now sign in, now click the top link in the list on the left, now select you the course you want, then this, that and you should now see what you want”, as opposed to “just click on the link I’ve just sent you”.

Taking the above into consideration (i.e. that Blackboard links are essentially irrelevant to the end user) it is interesting to see what some Blackboard URIs look like:

Blackboard Module URI
Announcements http://blackboard.lincoln.ac.uk/bin/common/announcement.pl?action=LIST&context=mybb&scope=_all
View Grades http://blackboard.lincoln.ac.uk/webapps/gradebook/do/student/viewCourses
Community http://blackboard.lincoln.ac.uk/webapps/portal/tab/_3_1/index.jsp
Logout https://blackboard.lincoln.ac.uk/webapps/login?action=logout
Help http://blackboard.lincoln.ac.uk/webapps/portal/frameset.jsp?tab_id=_40_1
Example course http://blackboard.lincoln.ac.uk/bin/common/course.pl?course_id=_46268_1
Course blog http://blackboard.lincoln.ac.uk/webapps/blackboard/content/listContent.jsp?course_id=_46250_1&content_id=_444545_1&mode=reset
Supervisor wiki http://blackboard.lincoln.ac.uk/webapps/lobj-wiki-bb_bb60/wiki_home/Handler?course_id=_32711_1&content_id=_457614_1

A few URIs seem mildly related to their content such as the example course and the gradebook however others like the community home page almost seem random.

SharePoint 2003
portal.lincoln.ac.uk (interal) visit.lincoln.ac.uk (external)

Our SharePoint 2003 installation is our institution’s internal content repository and intranet. Every department and faculty has it’s own “site” (read: section) and providing you know exactly what you are looking for (searching doesn’t work) then it is generally quite useful. Unlike Blackboard however SharePoint is not built using frames and so you can give out direct links to content, for example:

Resource URI
ICT department https://portal.lincoln.ac.uk/C15/CS/default.aspx
University Resource https://portal.lincoln.ac.uk/C17/UniversityResources/default.aspx
First aiders https://portal.lincoln.ac.uk/C11/C0/First%20Aiders/default.aspx
External news https://portal.lincoln.ac.uk/External%20News/default.aspx
FreeCycle https://portal.lincoln.ac.uk/C13/C18/Freecycle/default.aspx

At first glance the SharePoint URIs look as random as Blackboard’s however I’ve had explained to me why this is. Basically SharePoint is made up of “sites”. In the 2003 version the first 20 sites can be named whatever you want, for example “External News” or “University Resources” however after that SharePoint insists on using folders that count up, prefixed with the letter “C”, e.g. C0, C1, C2, and so on up to C19. Inside these “sites” again you can have another 20 directories named whatever you want and then the C directories start. This basically means that sites are capped at 40 directories per directory, half of which you can alter the name. Confusing yes. Logical no. I’ve been informed that this is no longer the case in SharePoint 2007 onwards.

As a result you can potentially have sites that have a nice friendly URI structure (if you discount the /default.aspx at the end) e.g. https://portal.lincoln.ac.uk/Examples/HelloWorld/default.aspx. However for sites which are granted C-directories (such as the ICT department) the URL loses all contextual relevance. Again I think the best bet for users is to follow links through to the resource (or if they’re feeling brave, try searching for the content).

Posters at Lincoln
posters.lincoln.ac.uk

Posters at Lincoln was one of the first sites I worked on when I started working for the Online Services Team here at the University. It’s development brought about the Common Web Design and a number of other projects we’ve worked on over the last year. Therefore forgive me if I’m a bit bias in this overview.

The site is split up into “groups”, such as ICT Department or Marketing and Communications, and “campaigns”, which are posters created for different events and public notices.

We designed the URI structure to be SEO friendly and semantically relevant with URLs like:

Resource URL
Home page http://posters.online.lincoln.ac.uk/home
About page http://posters.lincoln.ac.uk/about
All campaigns http://posters.lincoln.ac.uk/all
Marketing and Communications group http://posters.lincoln.ac.uk/group/comms
Get Satisfaction campaign http://posters.lincoln.ac.uk/campaign/getsatisfaction
Science Fair campaign http://posters.lincoln.ac.uk/campaign/Science

As you can see, the URI structure is very simple and clean in contrast to some of the other examples mentioned above. This is partly down to the fact that the framework we built the website in, Codeigniter, has sexy URIs support built in, but also because it’s trivial to make Apache serve up extension less URIs.

This brief overview has hopefully outlined some of the differences between the URI construction of some of the online services we use at Lincoln.

Related Posts

Update

This has been a big month for Total ReCal. We’ve now perfected our event importers for Blackboard assignments and academic timetables, and we’ve started working on the main web application (screenshots too). We’ve also launched a beta registration page for interested staff and students to sign up for early access. Finally, our Talis Keystone service that the University has recently purchased will be in place very soon meaning we can also start importing book return dates for staff and students.

After numerous code re-writes we’ve got a rock solid API for adding, updating and deleting events in our Nucleus data store. Our import code has also had many updates to support logging of changes to events which will be invaluable to students to keep them up to date. Once the main Total ReCal application has been developed we’re going to sit down and work out how we’re going to best make use of these logs.

When a lecturer calls in sick the central timetabling department isn’t informed (unless it will affect lecturers for a long period of time). Therefore based on our current nightly timetable imports we won’t find out about any changes. We’re going to develop a tool for faculty administration staff to make changes to events as they’re going to be more aware of what the situation is day to day. This means that we can then inform students of changes that day as soon as someone changes it.

In terms of the front end, I’ve forked our common web design, called it ‘common web design x’, made it fluid to adapt to browser size, made it completely semantic HTML5 based, and taken the concept of progressive enhancement to new levels. It will also make use of our new OAuth 2.0 based single sign on service that I’ve written and it will automatically adapt to mobile layouts.

Moving Forward

Over the past week we’ve worked tirelessly to perfect our timetable import code and we’ve now got a system that is working with real data. A select few students have now been given access to iCal feeds for both their timetables and their Blackboard assignments and the Library is hoping to have their Talis Keystone system in place very soon meaning we can start producing feeds of people’s book return dates.

Our next big job is to move away from bulk imports of data and instead start developing code that will go through and validate and verify events. So this could be looking for changes in the time of events or verifying that the right students are seeing the right events (in the event of a student changing course for example). With these changes logged we can then tackle one of the top requests that students have of the University and that is to be better informed of changes to their timetables.

The main timetables are produced by the Registry department however they aren’t informed if a lecturer is ill on a particular day, and in any case timetables aren’t updated currently until the following morning, so we’re planning on developing a tool for faculty offices to use so that they can make individual amendments to timetables when rooms need changing or lectures have been cancelled so that students can be informed sooner.

The logging of these changes will be important for Blackboard too. Certain schools and faculties like the idea of personalised assignment calendars however their own internal policies don’t allow staff to set deadlines inside Blackboard because deadlines may be changed by lecturers and senior staff aren’t informed. This is why the Computing School for example release a huge Excel spreadsheet of deadlines because it means only two people have access to change deadlines. We don’t want to be in a situation where we have to create individual departments their own tools to manage assignment deadlines, we’d prefer everyone used Blackboard and so with the ability to log changes to events what we could do is delay the update of the deadline in the student calendars for 24 or 48 hours giving senior staff a period in which to change it back to the original date or leave it (i.e. approve the change).

Our plan over the next few weeks is to perfect our API for querying events, give more students access to the their iCal feeds and also start developing the front end calendar application.