Extension:Education Program

About
Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors, ect, as well as improving workflow for everyone involved (enrolment, seeing changes of other students, article and reviewer association) and proving several analysis/statistics interfaces. It was developed for the Wikipedia Education Program but is generic enough to be used by similar programs.

Feature overview

 * Browsing interfaces for institutions, courses and terms.
 * Pages with summaries and linked items for all institutions, courses and terms.
 * Edit page for institutions, courses and terms.
 * History pages for institutions, courses and terms.
 * Enrollment page for students with optional token requirement (and associated disenroll page).
 * Sortable and filterable list of students.
 * Personal courses overview at Special:ManageCourses for students, ambassadors and instructors.
 * Personal course activity overview at Special:MyCourses.
 * Overview of the program status on Special:EducationProgram.
 * Overview of student activity on Special:StudentActivity.
 * Online Ambassador and Campus Ambassador profiles.
 * Lists of Online Ambassadors and Campus Ambassadors.
 * Logging of all special education events, such as enrollment and courses association.

Requirements
requires:


 * MediaWiki 1.20 or above
 * PHP 5.3 or above

Installation
Once you have downloaded the code, place the EducationProgram directory within your MediaWiki 'extensions' directory. Then add the following code to your LocalSettings.php file:

Configuration
Configuration of is done by assigning to $egEPSettings in your LocalSettings.php file. The options are listed below and their default is set in the settings file. You should NOT modify the settings file, but can have a look at it to get an idea of how to use the settings, in case the below descriptions do not suffice.

Example of how to change a setting:

Available settings:

Usage
To get started using the extension, after it is installed, administrators can grant to the course coordinator user right to anyone who will be managing the use of the extension's functions (if they are not already administrators), and administrators or course coordinators can grant the relevant user rights to users in the instructor or campus/online volunteer roles. To set up a course, first add the institution for that course at Special:Institutions, and then add the specific course (through Special:Courses or the institution page). Set an enrollment token and distribute it to students, and the class can begin using their course page.
 * Quick instructions for getting started


 * Using the extension features
 * Preferences and usergroups - The extension introduces a new preferences, one for displaying a link to Special:MyCourses in the Personal tools at top right, and another for displaying the "Did you know box" if Extension:Did You Know is present. The extension introduces four new usergroups to control the functions of the extension and identify users associated with particular course roles (such as the instructor or a Campus Ambassador or other volunteer Wikipedian).
 * Institution and Course pages - The pages for Institutions and Courses are in a new namespace, "Education Program:", and include structured data such as the name and location of an institution, and the start date, description, and other details for a course.
 * Special pages - The extension creates a set of related special pages for presenting information about classes and student activity.

Developer documentation

 * High level database overview
 * Low level schema docs
 * There is lots of class-and function-level documentation ;)

Version
This is a copy of the release notes file on Git, which might be more up to date than this page.

Version 0.3
(dev)


 * Enhancements


 * Renamed user groups from "Education Program $1" to "Course $1".

Version 0.2
(2012-10-16)


 * New features


 * Replaced Course and Institution namespaces with a single Education Program namespace.
 * Implemented Special:Articles.


 * Enhancements


 * Real name is now optional by default.
 * Tweaked default user rights.
 * Replaced all usages of wfMsg* with their modern equivalents.
 * Use of __DIR__ instead of dirname( __FILE__ )
 * Use of native Language::formatDuration rather then own implementation
 * Moved user preferences from a dedicated "education program" tab to the "misc" tab.


 * Bug fixes


 * Start and end dates are now shown in human readable format in diffs.
 * Added invalidation of the institution and course view caches after edits.
 * Fixed cancel button (on course/org edit pages) target to remain correct when altering the title and submitting but encountering a form validation error.
 * Blocked users can now view course and institution pages.
 * Blocked users can no longer enroll in any courses.


 * Migration from 0.1


 * Update.php needs to be run
 * Courses that where in the Course namespace will no longer be valid, no migration script provided
 * Institutions can remain where they where but the secondary storage needs to be rebuild, no rebuilding script provided

Version 0.1
(2012-6-20)

Initial release with these features:


 * Browsing interfaces for institutions, courses and terms.
 * Pages with summaries and linked items for all institutions, courses and terms.
 * Edit page for institutions, courses and terms.
 * History pages for institutions, courses and terms.
 * Enrollment page for students with optional token requirement (and associated disenroll page).
 * Sortable and filterable list of students.
 * Personal courses overview at Special:ManageCourses for students, ambassadors and instructors.
 * Personal course activity overview at Special:MyCourses.
 * Overview of the program status on Special:EducationProgram.
 * Overview of student activity on Special:StudentActivity.
 * Online Ambassador and Campus Ambassador profiles.
 * Lists of Online Ambassadors and Campus Ambassadors.
 * Logging of all special education events, such as enrollment and courses association.
 * Several education related user preferences.
 * "Did you know" box on Special:MyCourses.

Internationalization
is fully internationalized. Translation of messages is done through translatewiki.net. The translation for this extension can be found here. To add language values or change existing ones, you should create an account on translatewiki.net, then request permission from the administrators to translate a certain language or languages on this page (this is a very simple process). Once you have permission for a given language, you can log in and add or edit whatever messages you want to in that language.

Authors
has been written by Jeroen De Dauw as Wikimedia Foundation contractor for the Wikipedia Education Program.