Extension:TrackingBundle

What can this extension do?
Extension Tracking Bundle actually includes three special pages, that cooperate closely together. TrackingBundle, AssignUserGroups and ActivityWatch.

The bundle has been created in order to provide leaders of the wiki with a tool to track and evaluate the changes on the wiki made by a specific group of participants. This may be, for example, a teacher evaluating his students' contributions.

The wiki allows users to define their own MediaWiki-independent user groups and specify leaders of these groups. These groups may also specify a set of pages that the group members modify, so it'd be easier to track only relevant changes.

Usage
As already mentioned, the extension has three separate special pages.

Special:TrackingBundle
This special page serves only for the installation and configuratoin purposes, which will be covered in the Installation section. Also, users take note that only sysops have a right to access this page.

Special: AssignUserGroups
In here, an administrator (a user with permission to change user rights) may create a new group. These groups are completely separate from the default Mediawiki groups, so you don't have to be afraid of ruining your wiki.

Each group consists of regular members and leaders. The leaders may also modify respective groups. Additionally, groups may also define "pages of interests". These pages will be helpful in filtering the revisions in the "Activity watch" extension, described below.

Special ActivityWatch
This is the main extension which you will be using most frequently and it is separated into two tabs.

Evaluation
Users may be evaluated by various criteria, that are defined in the TrackingBundle configuration extension. The default criteria installed with the extension are "New content" (contributing new information value), "Modified content" (fixing/explaining the old information), "Grammar/editing" (for miscellaneous changes).

In order to evaluate a user's revision you need to be in the same group as the user and be a leader of the group. Plus, the revision made on a specific page must be one of your "pages of interests" from the group.

Statistics
Collected revision ratings are processed on this extension tab. Users are provided with various charts and sortable score table.

The total score may also be computed in various ways, defined by the user. For example, some leaders may want to evaluate their wiki participants by simple score sum (with default criteria it's new content+modified content+ grammar), some may want to include weights for the criteria, while others may want to create a completely custom evaluation function with mathematical expressions.

Most frequent custom math. functions may also be defined in the TrackingBundle configuration extension page, so a leader doesn't have to rewrite them every time he wants to evaluate his wiki.

Shared filter
Both of the ActivityWatch tabs have a common shared filter, which may filter the revisions from a specific timespan, select only specific articles or specific users. An exemplary use of this filter is a teacher who wants to evaluate activity only of his students in one semester, on one specific page.

Download instructions
Download the extension and extract the directory TrackingBundle, along with all it's subdirectories and files, into

Installation
After the extraction place the following line into LocalSettings.php:

The next step is to navigate to Extension:TrackingBundle (the installation and configuration extension) and press the "Install" button. The extension will add the necessary database tables for the extension. and you will be able to use the other extension pages.

You may want to set/modify custom evaluation criteria, or define custom evaluation functions, on this configuration page (obligatory).

From this point you may either want to specify specific user groups (AssignUserGroups), or evaluation page (ActivityWatch). Do not forget that '''in order to evaluate a user's revision you need to be in the same group as the user and be a leader of the group. Plus, the revision made on a specific page must be one of your "pages of interests" from the group'''.

External libraries
Extension uses some 3rd party code.
 * DatePicker v4.5 by frequency-decoder.com
 * EvalMath - PHP by Miles Kaufmann
 * Google Charts API

Future developments and TODOs
As the extension is being actively used, it may be changed in future. The forthcoming changes will most probably be code-cleaning and internationalization, as most of the extension messages are hard-coded, rather than implemented via the i18n file. Also, a lot of styles should be ported into the extension css files.