Programming, Software and Code

MediaWiki PeerReview Extension

Yesterday I put the code public for the new PeerReview extension I've been developing. Actually, I've only been completing and putting the finishing touches on the extension after a friend and colleague, Jason, wrote up the initial versions.

The request was simple. We want a way for students in a class using MediaWiki to be able to take ownership of a page and be graded based on it's contents. There is a certain disconnect here with the whole open-content philosophy, but this is only for the narrowly-defined classroom setting where we have a central authority (teacher) and a group of editors with particular assignments. This kind of extension would obviously not be used in an open wiki like Wikibooks, but it could definitely find a happy home in a private wiki used for a class or closed group.

The PeerReview extension has several components. The first, and most obvious, is a review form that appears at the top of reviewable pages. When a user logs in and goes to a reviewable page, the review form appears and the user can enter a review. The review consists of a single grade (letter or number, as appears in the DB) and a short comment.

The next component is the idea of a page "owner". A new special page and some database extensions allow a person with sufficient authority (a teacher or administrator) to assign ownership of a page to a student or a group of students. In this way reviews left on a page can be associated with the students who have ownership of that page.

The third, and currently final component of the extension is a simple dashboard-like interface where a user can view lists of reviews that they have given and received.

The PeerReview extension is functionally, in the sense that everything that is visible is operational and tested. However, it is still a little bit slim on features right now, and there is a large amount of new development needed to really bring this to the next level of utility and usability. Specifically:
  1. A mechanism to associate students together into class groups, with one or more teachers
  2. An interface for teachers to monitor the reviews given to/from students in their class, including a utility to aggregate reviews into average scores for each student
  3. An improved API with more flexibility and more configurability
  4. Improved aesthetics throughout
I am continuing development on this as I am able, but I would definitely like to solicit feedback and maybe even find people interested in contributing to the project.

This entry was originally posted on Blogger and was automatically converted. There may be some broken links and other errors due to the conversion. Please let me know about any serious problems.