Extension:Education Program

About
Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors, etc, as well as improving workflow for everyone involved (enrollment, seeing changes of other students, article and reviewer association) and providing several analysis/statistics interfaces. It was developed for the 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.

Usage
To get started using the extension, after it is installed, administrators can (optionally) 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 (optionally) campus/online volunteer roles. The course coordinator user right gives full access to the course page features, including creating and deleting courses and granting the other course rights to other users.
 * Quick instructions for getting started

To set up a course page, you need to have a user account on Wikipedia that has the rights to do so (either administrator rights, or any of the "course" rights such as "Course instructor" which can granted by an administrator).

1. Check to see whether your institution (e.g., your college or university) is already in the course page system by going to Special:Institutions. If not, add it. (If you are logged in and have the proper rights, you should see an “Add a new institution” section above the list of institutions already in the system.)

2. Go to your institution page, then start your course page. In the “Add a course” section, select your institution from the pulldown menu, enter the course name and the term (e.g., 2013 Q1), and click “Add course.”

3. Fill in the details for your course including an “enrollment token” that your students will use as the code to allow them to enroll on the course page, the start and end dates, and a description of the course in general and what students will be trying to do on Wikipedia in particular—and then press “Submit” to create the course page.

4. After your course page has been started, you can send your students the URL of your course page along with the enrollment token, and they can sign up as students in the course (once they have created their Wikipedia accounts). You can then use the Special:MyCourses page (linked from the top of the page near your username as "Courses") to see recent activity from your students.


 * Using the extension features


 * Preferences and usergroups - The extension introduces 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". 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).


 * - 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.


 * - The extension creates a set of related special pages for presenting information about classes and student activity.


 * - Some optional interface messages can be used to customize the appearance of course pages and their default content.

Troubleshooting and bug workarounds

 * Remove duplicate courses - In some cases, the same course or org may be listed twice in the courses list, because it has two different course IDs. To clean this up, users can delete courses by ID number through the API.

Requirements
requires:


 * 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:

(Make sure you add it after the inclusion of cldr.)

Then link>Special:MyLanguage/Manual:Upgrading#Run_the_update_script|run update.php.

Configuration
Configuration of is done by assigning to $egEPSettings in your  file. The options are listed below and their default is set in the. 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:

Developer documentation

 * High level database overview


 * There is lots of class-and function-level documentation ;)

Version
This is a copy of the, which might be more up to date than this page.

Version 0.3
(dev)


 * Compatibility changes
 * Added support for MediaWiki 1.21
 * Dropped support for MediaWiki 1.20
 * Enhancements
 * Renamed user groups from "Education Program $1" to "Course $1".
 * Introduced EducationProgram PHP namespace.

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 [http://translatewiki.net/w/i.php?title=Special:Translate&group=ext-educationprogram 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.

Process for enabling on a Wikipedia
Currently, this extension is being used on:
 * Wikipedia: English, Spanish, Czech, Swedish, Hebrew, Macedonian, Portuguese, Arabic, Greek, Persian
 * Wikiversity: German
 * Wikinews: English

If you would like to use it on another language Wikipedia, these are the steps:


 * 1) Get the extension fully translated for your language, if it is not already. (See section-link>#Internationalization|Internationalization.)
 * 2) (OPTIONAL) You may wish to translate or adapt the training modules to use in conjunction with the extension.
 * 3) Establish consensus for turning in on within the community of your wiki, typically by holding a Request for Comment. See the wikipedia>w:Wikipedia:Requests for comment/Education Program extension|English Wikipedia RfC, for example, although a simple "yes/no" decision is sufficient for the default configuration.
 * 4) File a request on bugzilla to have it enabled (pointing to the on-wiki consensus) and/or ask user Sage Ross (WMF) to do so.
 * 5) Assign the extension user rights as needed for instructors and the editors coordinating the use of course pages.

Authors
was written by Jeroen De Dauw as Wikimedia Foundation contractor for the Wikipedia Education Program. As of October 2013, it is being developed further by Andrew Russell Green as a Wikimedia Foundation contractor.

Roadmap
We are currently mapping out short- and long-term plans for the extension at.


 * See also: . (The short-term roadmap from early 2013, which includes a list of ideas and feature requests.)