Friday, May 16, 2008

Wiki implementation - practical experience (Part 1)

During January 2007 I was hired by a Czech company to help them improve one of their web services. My task was to be a project manager (team had 4 people) of innovation of a webpage for high-school students. This webpage contained around 3000 essays and papers. What were the requirements?
  1. innovate the server in terms of technology
    • offer simple to use user interface for visitors (students); it must be easy for student to find essay; it should be practical rather than eye candy
    • offer simple to use user interface for authors; it must be easy to add new essays and edit those that are stored; it should be very easy to connect/group essay with similar topics
    • it should be possible to add new functionality using plug-ins
  2. innovate the server in terms of the data stored
    • all the essays should be read by high-school teachers and the major mistakes should be corrected
    • group the essays accordingly to topic and subject; this should be done by the teachers as well
Since I was a team lead and project manager I was responsible for both 1. and 2. above. However I will write just about No. 1, since 2. is not about technology. First decision to be made was to choose the right software/technology. We decided to go for a wiki. Why? Because it is ideal for our purpose and will cover all our needs. There are some reasons which made wiki the right choice for us:
  • it is extremely easy to use, both for the visitors and the authors/admins
  • it allows you to manage database of thousands of documents very easily
  • there are lots of wiki implementations out there; most of them are for free
We decided to go for a open-source wiki. But which to choose? We had to decide between: PhPWiki, PmWiki, DokuWiki, Mediawiki and ScrewTurnWiki. Except from ScrewTurnWiki all other are written in PHP and usually use MySQL database. We decided to use MediaWiki, because it is very robust, there are lot of developers who fix bugs and create new plug-ins (extensions). After choosing the right wiki for us, we had to implement it and make some changes to its core, since we needed little bit different functionality. In the next article, I will write about the implementation and which problems we faced.

No comments: