From KDE Community Wiki
< GSoC‎ | 2016‎ | StatusReports

Title: WikiToLearn Rating

In Wiki­-style learning environments new content has to be reviewed by expert users to be termed as reliable. This process is essential for maintaining the quality of the content published. However, this process of “Review” itself can be difficult and slow when we concern ourselves to articles seeing rapid contributions as the articles need to be continuously evaluated by the experts to retain reliability. Therefore, we need to ask ourselves that – Is there a way we can speed up this quality check mechanism hence encouraging participation while ensuring content reliability?

This project is aimed to tackle the above problem by developing a Rating Engine for WikiToLearn (a wiki style learning platform ) based on various parameters like User's Opinion, Author's Credibility,Page Interconnections and Revision History to evaluate the reliability and quality of articles on the platform.

Project status


WikiRating Engine The engine is the chief component of our project. All the data collection , processing and computation are done here. The Engine will be deployed in the form of a REST API. This engine will be requested for the necessary information like Page Rating, User Votes , Badges when the user visits a particular page.

Also this API can be further used to request the contributions of the users on a set of pages, this functionality is instrumental in designing a credit system for all the contributors.

WikiRating Extension This extension will work in conjunction with WikiRating Engine and will be used to display rating of the current page and to gather vote from the user.The extension also shows more detailed information about the current page if requested.

Future work

  • Setting up the parameters for the algorithm.
  • Testing the engine with more data.
  • Deploying the engine on production.
  • Updating MediaWiki Documentation for WikiRating Extension with the Engine configuration guide.
  • Code cleaning and documentation.
  • Styling and improving the design of WikiRating Extension.


Work report



WikiRating Engine: This repository holds the code for WIkiRating engine along with all the necessary scripts to setup an OrientDB instance inside a Docker container.

WikiRating Extension: This repository contains the WikiRating Extension directory that will be placed inside the extension folder of the wiki installation to enable the extension.

Project Demonstration

Blog posts


During GSoC-2016, I maintained a detailed blog about my project. Below are the 8 posts encapsulating my project work.

Google Summer of Code 2016 (MAY 12, 2016)

This is an introductory post highlighting my initial experiences with WikiToLearn and how I developed my intuition to match the project.

Build.Run.Contain! (MAY 22, 2016)

We used Docker to setup the OrientDB (graph database) for our project. This post explains the importance of Docker for production environments and lists down detailed steps to setup OrientDB inside a Docker container.

Connecting the dots… (MAY 23, 2016)

This post is all about how we modeled our problem statement with a graph database. It contains common use cases and shows an overview of the desired database design.

How I met our Algorithm! (JUNE 5, 2016)

This post describes our efforts while designing the Algorithm for the WikiRating engine and learning the MediaWiki Web API to fetch the desired data for processing. It further highlights our initial thoughts before starting with the Engine programming.

Leave out all to ‘REST’ (JUNE 14, 2016)

This post concerns itself with the Engine Architecture and explains it's 3 layered anatomy in detail.

We’ve come a long way from where we began! (JULY 25, 2016)

This post explains in detail the thought process behind the engine design as well as code examples from the actual WikiRating Engine. It also throws light on all the major algorithms used to calculate the page ratings.

Tip of the iceberg ! (AUGUST 6, 2016)

This post is about the process of WIkiRating Extension development. It highlights various components of the MediaWiki Extension development and how we designed the similar components for our extension.

Riding the memory lane… (AUGUST 18, 2016)

This is the concluding post for GSoC-2016 and it portrays my experiences during the GSoC period.


This is awesome about GSoC

GSoC 2016 gave me an opportunity to work with some of the experts in the open source community. It was really a great experience working on a technology that can generate a greater impact while simultaneously gaining immense knowledge from the passionate domain experts.

This is what I learned during GSoC

  • Working with RESTful Web Services framework - Jersey
  • Working with NoSQL database (OrientDB)
  • Working with MediaWiki Web API
  • MediaWiki Extension Development
  • Working with container technologies (Docker)
  • Basic PHP and jQuery
  • Shell Scripting
  • Git


Telegram Nick: abhimanyu_shekhawat

Telegram Channels: WikiToLearn Tech, WikiToLearn, WikiToLearn Café,WTL-GSOC Rating,WikiToLearn GSoC