Jamie Lentin

Tutor-web is both a learning tool at Iceland University, both as a learning aid for students and a platform for research into e-learning.

Tutor-web has been used for approximately 4000 students, at the University of Iceland as well as further afield; it's capabilities for working off-line have proven invaluable for teaching in Kenya, where internet connections are not readily available.

Tutor-web beta interface

Tutor-web beta interface

Shuttle Thread has been responsible for development of Tutor-Web for nearly 5 years, building an Offline-first web application that allows students to keep working anywhere. Tutor-web itself as morphed radically over the years, as new features have been added, for example:

...all of which have their behaviour parameterised, so that their maximum benefit can be observed.

Principally Tutor-web has been developed with:

Most of the server side logic is still in Plone, but more is moving out into Pyramid. This allows us to have greater separations of concerns, with the Pyramid app dealing with handling the student-facing web app, and Plone being the admin interface that teachers use to configure.
Whilst earlier versions used MySQL, beyond my own preference, a key advantage of PostgreSQL is it's JSONB features. Whilst Tutor-Web has a traditional relational schema to store student work, this process is going to break down in future as questions in Tutor-web become more open-ended and flexible. Student answers are now stored as JSON, removing the need for the schema to handle all forms of question, simplifying it and making it more responsive to change, however we still have the ability to construct complex queries involving the student answer.

A key feature of Tutor-web is that it can keep going with unstable or nonexistent connections to the server. After an initial load, work is synced asynchronously to the server. If there is no connection, then work is queued until a sync is possible.

To achieve this, Tutor-web was an early adopter of the "offline-first" mantra, using AppCache so the site can be reloaded even if there is no network connection at all.

This has proven invaluable, as well as students being able to work anywhere, it also means that any problems with infrastructure in a classroom do not affect the student's work.