Extension:Education Program

From MediaWiki.org
Jump to: navigation, search

Other languages:
Deutsch • ‎English • ‎British English • ‎español • ‎magyar • ‎italiano • ‎日本語 • ‎Lëtzebuergesch • ‎Nederlands • ‎polski • ‎português do Brasil • ‎తెలుగు • ‎українська • ‎中文
shortcut: EP
MediaWiki extensions manual
Crystal Clear action run.png
Education Program

Release status: beta

px
Implementation Special page, Ajax, User interface
Description Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors, ect, as well as improving workflow for everyone involved and proving several analysis/statistics interfaces.
Author(s) Jeroen De Dauw, Andrew Russell Green
Latest version 0.4 alpha
MediaWiki 1.21+ (1.23+ as of 0.4)
PHP 5.3.2 or above
Database changes yes
License GNU General Public License 2.0 or later
Download
readme
release notes
Example en.wikipedia.org
Hooks used
LoadExtensionSchemaUpdates

UnitTestsList
PersonalUrls
GetPreferences
SkinTemplateNavigation
SkinTemplateNavigation::SpecialPage
ArticleFromTitle
CanonicalNamespaces
TitleIsAlwaysKnown
AbortMove
NewRevisionFromEditComplete

Translate the Education Program extension if it is available at translatewiki.net

Check usage and version matrix; code metrics
Bugs: list open list all report

About[edit | edit source]

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[edit | edit source]

  • 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[edit | edit source]

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[edit | edit source]

Education Program requires:

Download[edit | edit source]

The extension can be retrieved directly from Git [?]:

  • Browse code
  • Some extensions have tags for stable releases.
  • 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).

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/p/mediawiki/extensions/EducationProgram.git

Installation[edit | edit source]

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[edit | edit source]

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 width 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[edit | edit source]

Version[edit | edit source]

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

Version 0.3[edit | edit source]

(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[edit | edit source]

(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[edit | edit source]

(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[edit | edit source]

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.

Process for enabling on a Wikipedia[edit | edit source]

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 Internationalization.)
  2. (OPTIONAL) You may wish to translate or adapt the training modules to use in conjunction with the extension.
  3. Establish consensus to enable on your wiki, typically by holding a Request for Comment. See the 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 Anna Koval (WMF) to do so.
  5. Assign the extension user rights as needed for instructors and the editors coordinating the use of course pages.

Authors[edit | edit source]

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[edit | edit source]

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

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

Screenshots[edit | edit source]

External links[edit | edit source]