Extension:Education Program
![]() | This extension is currently not actively maintained! Although it may still work, any bug reports or feature requests will more than likely be ignored. If you are interested in taking on the task of developing and maintaining this extension, you can request repository ownership. As a courtesy, you may want to contact the author. You should also remove this template and list yourself as maintaining the extension in the page's {{Extension }} infobox. |
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 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.
Usage
- Quick instructions for getting started
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.
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).
- 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.
- Interface messages - Some optional interface messages can be used to customize the appearance of course pages and their default content.
- Getting student usernames for Wikimetrics
- ListStudents API - An API can be used to get a list of usernames or user IDs for the students in one or more courses, which can then be uploaded as a cohort to Wikimetrics.
- 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
Education Program requires:
- MediaWiki 1.20+
- PHP 5.4 or above
- Extension:CLDR
Download
The extension can be retrieved directly from Git [?]:
- Browse code
- Some extensions have tags for stable releases.
- Browse tags
- Select the tag
- Click "snapshot"
- Each branch is associated with a past MediaWiki release. There is also a "master" branch containing the latest alpha version (might require an alpha version of MediaWiki).
- Browse branches
- Select a branch name
- Click "Continue"
Extract the snapshot and place it in the extensions/EducationProgram/ directory of your MediaWiki installation.
If you are familiar with Git and have shell access to your server, you can also obtain the extension as follows:
cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/EducationProgram.git
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:
# Education Program
require_once( "$IP/extensions/EducationProgram/EducationProgram.php" );
(Make sure you add it after the inclusion of cldr.)
Then run update.php.
Configuration
Configuration of Education Program is done by assigning to $egEPSettings
in your LocalSettings.php file. The options are listed below and their default is set in the Education Program 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:
$egEPSettings['defaultWidth'] = 250;
Available settings:
Name | Type | Default | Description |
---|---|---|---|
enableTopLink | boolean | true | Enabled the link to Special:MyCourses in the menu on the top (next to the link to MyPreferences). |
ambassadorCommonsUrl | string | https://commons.wikimedia.org/wiki/Special:UploadWizard | Link to the upload interface for ambassador profile pictures. |
citylessCountries | array | see settings file | List of countries for which to not require a city for institutions. |
ambassadorImgWidth | integer | 140 | Maximum width of ambassador profile images in the ambassador profile lists. |
ambassadorImgHeight | integer | 140 | Maximum height of ambassador profile images in the ambassador profile lists. |
recentActivityLimit | integer | 24 * 60 * 60 | The length of the time period for which to show activity on Special:StudentActivity. |
flagWidth | integer | 25 | The maximum width of flag icons on Special:StudentActivity. |
flagHeight | integer | 25 | The maximum height of flag icons on Special:StudentActivity. |
countryFlags | array | see settings file | List of country codes pointing to image names used to figure out which image to use for country flag icons. |
fallbackFlag | string | Nuvola unknown flag.svg | A flag image to show for countries that do not have an associated flag set in the countryFlags settings. |
courseDescPage | string | MediaWiki:Course description | Name of the page on which the default initial description for courses can be specified. |
courseOrgDescPage | string | $2/$1 | Name of the page on which the initial description for courses belonging to a specific institution can be specified.
$1 is replaced by the name of the institution and $2 is replaced by the value of the courseDescPage setting. |
useStudentRealNames | boolean | false | If real names should be shown instead of usernames for students in the education interfaces. |
timelineDurationLimit | integer | 2 *24 * 60 *60 | The length of the time period for which to show activity in the course activity timelines (ie on Special:MyCourses). |
timelineCountLimit | integer | 42 | Maximum number of items to show in the course activity timelines. |
timelineUserLimit | integer | 3 | Maximum number of users to list in an event group in course activity timelines. |
dykCategory | string | MyCourses Did You Know | The name of the category from which to use pages as content for the did you know box. |
dykOrgCategory | string | $2/$1 | The name of the category from which to use pages as content for the did you know box for a specific institution.
$1 is replaced by the name of the institution and $2 is replaced by the value of the dykCategory setting. |
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)
- 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
Education Program is fully internationalized. Translation of Education Program 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. To determine how much of the interface has been translated into your language and what, see here.
Current installations
This extension is being used on 20 Wikimedia projects.
This extension is being deprecated. In Wikimedia projects, please use the Programs and Events Dashboard for all new programs.
Process for enabling on a Wikipedia
As this extension is being deprecated, we do not plan to enable it on new Wikimedia projects.
Authors
Education Program 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, plans, and updates
The outdated project roadmap was posted at July 2015 roadmap notes.
Previous short- and long-term plans for the extension were posted at Wikipedia Education Program .
Project status updates were posted at Wikipedia Education Program/status.
This page documents plans from early 2013. It includes a list of ideas and feature requests.
On June 30, 2018, the Education Extension will be shut down.[1]
Screenshots
External links
- Education Program on Ohloh
- Education Program overview on Outreach
- Education Program learning pattern on Meta
![]() | This extension is being used on one or more Wikimedia projects. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's CommonSettings.php and InitialiseSettings.php configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's Special:Version page. |
- Unmaintained extensions
- Special page extensions
- Ajax extensions
- User interface extensions
- GPL licensed extensions
- Extensions in Wikimedia version control
- LoadExtensionSchemaUpdates extensions
- PersonalUrls extensions
- GetPreferences extensions
- SkinTemplateNavigation extensions
- SkinTemplateNavigation::SpecialPage extensions
- ArticleFromTitle extensions
- CanonicalNamespaces extensions
- TitleIsAlwaysKnown extensions
- MovePageIsValidMove extensions
- AbortMove extensions
- NewRevisionFromEditComplete extensions
- NamespaceIsMovable extensions
- SpecialContributionsBeforeMainOutput extensions
- BeforeCreateEchoEvent extensions
- EchoGetDefaultNotifiedUsers extensions
- PageContentSaveComplete extensions
- SetupAfterCache extensions
- UserMergeAccountFields extensions
- UserMergeAccountDeleteTables extensions
- MergeAccountFromTo extensions
- ResourceLoaderRegisterModules extensions
- All extensions
- Extensions used on Wikimedia