SchoolTool packaging for NEXS

SchoolTool is a suite of free administrative software for schools. Since it can be installed easily and used with no licensing fees, SchoolTool can be used by schools for a single purpose, by individual teachers or small teams within schools, or as a whole-school comprehensive student information system, encompassing demographics, gradebooks, attendance, calendars and reporting. (Source: http://schooltool.org/)

In our continual effort of improving our systems and providing tools to support digital education, we were presented with a new requirement — providing schools a software based tool for classroom management and grading. After evaluating a few available tools, we encountered SchoolTool which was the foremost candidate meeting most of our criteria:

  • Web based
  • Different user levels: admins, teachers, students
  • Student information system
  • Calendars
  • Attendance
  • Grading
  • Localizable
  • Open Source

Though being the right candidate, SchoolTool had a few of the shortcomings for us — the tools is readily available (as a set of installable package) for Ubuntu only and had a lot of dependencies. As our plan to integrate the tool in the NEXS (School Server software based on Fedora Linux) infrastructure, a lot of packaging work had to be done, which included:

  • Developing a hierarchy of dependent packages for schooltool and its plugins.
  • Finding source tarballs for each packages.
  • Writing RPM spec files for each package and build binary RPMs against the spec.
  • Testing the setup.

It was daunting to perform all of the tasks manually, so we followed a semi-automatic approach — a script based automation and manual intervention where necessary. But writing spec files for building RPM packages for each dependency had to be manual, meanwhile a difficult task as well. Hopefully, we need not have to author spec files for around 80 dependencies; thanks to Robin ‘Cheese’ Lee for writing a few of them. Nevertheless the rest of them had to be authored, built against and tested; and it took us a good time performing these tasks iteratively until we arrived a stable stage. Now we are ready to pilot SchoolTool (localized in Nepali) in a few of the OLPC deployed schools.

We have built binary RPM packages for Fedora 13 and Fedora 9, for both 32 and 64 bit architectures. Additionally to encourage developers to test their own builds and to contribute in porting the tool to Fedora based distributions, we have made the packaging sources available under non-restrictive license. If you would like to test my builds, the RPM repository is hosted at http://ftp.schooltool.org/rpms/. Also there are ready to use repo files for Fedora’s yum package manager. To set up the repository:

The packaging sources (spec files and patches) are available at my git repository at http://gitorious.org/schooltool-rpm/schooltool-rpm/. We would like to see more people testing our builds and our specs and reporting back bugs. HAPPY TESTING!!

Wanted: Enterprise Content Management for Education

One of the tasks that I’ll be working on during my brief stint here in Nepal is researching and (hopefully) implementing a way to organize all the different media objects produced by OLE Nepal as basis for their E-Paath learning activities. Currently we are talking about several thousand images, sounds, texts and videos but it’s not hard to imagine their repository containing hundred thousand or more artefacts in the not-too-distant future. Apart from the specific OLE Nepal use-case I also believe that even larger content repositories have to be a core consideration for both the larger OLPC and SugarLabs efforts.

In order to efficiently handle this quantity of material one needs a solid and scalable solution. Let’s just call it Educational Content Management (ECM), shall we?

The basic requirements for such a solution are as follows:

  • the ability to handle tens if not hundreds of thousands of multimedia objects
  • easy to search so existing objects can be quickly retrieved
  • a version control mechanism, especially for text documents which tend to undergo a lot of revisions
  • reasonably easy to integrate in the current workflow (I’ll take a closer look at this aspect in just a bit)
  • the ability to define workflows with the simplest one of them being the review of an object
  • support for metadata that goes beyond what normal file formats offer
  • allow for batch processing (upload, download, tagging, etc.)
  • preferably based on software people already know, e.g. a browser or file explorer
  • open-source

After doing some research last week I came up with half a dozen solutions that looked reasonable well suited to meet these requirements:

Upon further inspection I decided to give Alfresco a shot since it appeared to be the most versatile solution. Well, two days later and I’m still stuck toying around with Alfresco and not very successful  getting it do what I want. In particular I’ve been concentrating on two use cases that I’d like to address by utilizing an ECM solution:

One of the most important assets during the design of an E-Paath activity are four text documents:

  1. Activity document: This is the blue-print for the activity and contains every piece of information the developers need to implement the activity. It can therefore be considered the activity’s DNA. What’s important is that here at OLE Nepal the activity document is created by a curriculum expert and/or teacher. (Other broader collaborations with technical people are of course also possible.)
  2. Teacher’s note: An extensive document detailing learning goals, links to school book contents, ideas for preceding and follow-up activities, etc.
  3. Lesson plan: This contains a detailed overview of how teachers can use the activity in the classroom, which homework can be assigned to pupils, etc.
  4. Help text: E-Paath activities contain an online help-text to facilitate the use of the activities.

With regards to the workflow the documents are initially written by a teacher and/or curriculum expert and in then get gradually refined and improved by various people. There are also review stages especially when it comes to the Nepali text that is being display within the activities.

At the moment all of these texts are saved as .docx files and stored on a central fileserver where multiple versions of the same document are saved for archival purposes. People communicate informally about which version is the latest one, which steps need to be taken next, etc.

In my mind this is a clear scenario and use case that could benefit from the use of an ECM that would allow for workflows to be implemented explicitly, for roles to be distributed to different people and as a one-stop solution for saving and retrieving the current and relevant versions of the documents.

Since Alfresco offers a SharePoint Protocol component the idea was to set this up in the backend and allow people to interface with the system via their current software of choice, Word 2007.

The problem here is that after 10 hours of experimenting and reading countless PDFs and forum threads and I still haven’t managed to get this running. Using the built-in Office functionality I can create a document workspace and subsequently save a document into it. However whenever I restart Word and try to retrieve documents from that document workspace I end up looking at an error message telling me that the repository URL isn’t valid.

The Office add-ins provided by Alfresco on the other hand allow me to browse existing document workspaces and also create new ones. However once I try to save a document into it I’m presented with an error message that Word isn’t able to save anything there. Similarly trying to check out existing documents from a workspace can result in empty error messages.

This is what I like to call being stuck between a rock and a hard place.

The second major use case I’m trying to address with Alfresco is the management of image files which make up the majority of the assets created for E-Paath activities. Even today with a relatively small team of content developers having worked on activities for two years there are thousands of images that are stored on the fileserver. Even with a decent naming scheme, which is only partially utilized, it’s not hard to imagine that finding existing images is anything but easy. Imagine what the situation will look like 5 years from now when changing teams of dozens of developers and volunteers will be dealing with thousands and thousands of available assets. This isn’t just an issue for the team here in Nepal. Imagine how much it will hamper content sharing on a global scale between Nepal, Uruguay, Peru, Rwanda, Austria, UK, etc.

In order to deal with this issue a solution should have the following capabilities:

  • quick search to find existing materials
  • batch capabilities for upload, download and tagging
  • support for extensive but not mandatory metadata (what this means is that it should be possible to add metadata incrementally at a later date therefore not forcing developers to spend time with tagging content at the time of upload)

Since using a single solution for both document and image management seemed like a good idea I again toyed around with Alfresco to see what it had to offer.

Batch uploading worked like a charm, if you use Chrome or Internet Explorer that is. There’s some sort of weird issue going on with a combination of Firefox, Flash, AdBlock extension and Windows Vista which is of course exactly the combination I happen to use. Once the images are in the document library however it’s a pain to add metatags to them as this, to the best of my knowledge, can only be done on a per-picture basis. The search on the other works very nicely however I would definitely love to see a batch download solution there to allow me to download a whole result set with a single click.

At the end of the day what I’m stuck with is a solution that seems to have a lot of potential but currently doesn’t quite have what it takes to be my Educational Content Management system of choice.

Anyway, since I’m still actively toying around with Alfresco I’d appreciate any pointers and information about potential solutions for the the issues described above. At the same time I’d also be very interested in your suggestions for and experiences with other Enterprise Content Management solutions that meet the requirements discussed at the beginning of the article.