EduGlu is a concept that came out of some discussions at Northern Voice 2006 - almost exactly 2 years ago - as a way to make sense of an individual's distributed content in the context of a course. The problem is on one hand very simple - a person publishes a bunch of stuff, and all they need to do is pull it into a course-based resource. On the other hand, it's really quite hard - how can software provide what appears to be a centralized service, based on the decentralized and distributed publishings of the members of a group or community, and honour the flexible and dynamic nature of the various groups and communities to which a person belongs?

EduGlu Distributed Content

EduGu WhiteboardOne of the problems I've had with the EduGlu concept over the last 2 years is actually a problem that is pretty common in software development - I was overthinking things. By several orders of magnitude. My initial response to EduGlu was to start drafting database schemas, planning out code and applications, and to think about building the perfect course-based aggregator system. This overthinking went on for awhile, with an evolution and streamlining of the schemas and plans for the application. A project was set up on EduForge to act as the repository for the code that would be developed.

I realized that for this concept to be sustainable, it shouldn't be a custom application. An "educational application" for this wouldn't work. I started looking at every application as a possible way to implement the EduGlu concept. I played with Drupal and Aggregator2, but it wasn't quite ready for prime time. I thought, maybe Elgg? Not quite.

Then Bill Fitzgerald recommended a more robust feed aggregator for Drupal, and things started clicking into place. That was back in May of 2006. It didn't quite work, and wound up getting shelved for awhile.

In February 2007, at Northern Voice once again, the idea of EduGlu got tossed around by a bunch of people hanging out after the conference. It was generally agreed that there was something to the idea, but that it was too nebulous and ill-defined to make much sense at the time. WHAT. IS. EDUGLU? I played with Yahoo Pipes as a possible implementation. That didn't work out very well. It wasn't flexible enough, and didn't provide enough control to each individual.

In May 2007, I started playing with BlogBridge Feed Library. It's a very cool directory application, and I installed a copy of it on a server to experiment with it as an EduGlu implementation. It worked pretty well, with users able to add feeds to groups, and tag them as needed. It imported and exported OPML, and provided a web interface to view the feeds in case someone wasn't using their own aggregator. It was close, but the workflow wasn't quite there - user management wasn't advanced enough to scale to the size of a large class or institution, and the concept of directories/folders/libraries was a bit inflexible for what EduGlu would need. It's perfect for a relatively static directory, but for something where students may be adding and dropping feeds on a regular basis, and adding them to multiple contexts, it didn't quite fit the bill.

Fast forward a few months, and Bill Fitzgerald is at it again. This time, he posts a full recipe for building a flexible feed aggregation application using Drupal and the much more robust FeedAPI aggregation management suite of modules. Very cool stuff. He's got the aggregation stuff nailed.

Then, I start thinking about how we've been successfully using Drupal to power the websites for some active and dynamic course-based communities. The thing that is different on those websites is that they allow members to form their own groups at will. To create, join, and leave groups all on their own, without interference from any institutionally mandated concept of classes or departments. This is enabled by the incredible Organic Groups module for Drupal. Getting closer, but still not quite there.

And then Cole Camplese kicked things into high gear by posting a link (was it on Twitter?) to a site his group worked up to integrate feed aggregation and social rating. It let students rate the aggregated items ala Digg, and that rating data is used to determine importance of the aggregated content.

Bingo.

The magic combination of features for EduGlu are:

Aggregation of feeds + Groups + Social Rating + Tagging

Plugging all of these concepts together results in a workflow that looks something like this:

EduGlu Content Flow

Students add feeds to the system, placing them in any relevant groups, and tagging the feed appropriately. Items from these feeds are then aggregated, inheriting the feed's tags and group settings. Students are able to view the incoming content in any (or all) of their groups at a glance, and apply social rating to sort and rank the items - items ranked over a threshold are pushed to the front page of the site. Tag clouds are generated, allowing easy browsing of content. And a full search engine is available, providing some pretty fully featured data mining tools. The aggregated items are archived for as long as needed, and discussion can occur within the context of the EduGlu website rather than being spread across dozens/hundreds of blogs and other applications scattered around the web.

The beauty of this implementation is that it involved no custom code. I didn't write a single line of code. All I did was integrate a set of off-the-shelf modules for Drupal. This is all generalizable and re-implementable in any number of various ways.