Wikipedia Education Program/status



Jeroen De Dauw started to work on a MediaWiki extension to support the Wikipedia Education Program; the implementation of course, term and institution management has been completed, and a test wiki is available.


Institution and course management is done, and so are student and instructor workflows. Logging has been implemented and work on revision history support has started. Several UI improvements have been made including using a tab interface similar to regular articles and use of WikiEditor for textfields in which wikitext can be entered.


  • Merged master courses with courses for simplicity.
  • Implemented revision history. One can now see and browse through a list of old revisions and view courses and institutions as they where at one of these.
  • Replaced special pages for courses and institutions by corresponding namespaces for more standard behavior and having discussion tabs.


Jeroen De Dauw implemented many features, like institution & course management, and instructor & student workflows. He also implemented logging and revision histories.


  • Added ambassador profiles.
  • Added lists of ambassadors.
  • Created personalized course listing for students, instructors and ambassadors on Special:MyCourses.
  • Added ability for students to disenroll from courses and for instructors to remove students from courses.
  • Added ability for students to list articles they are working on and for people to associate themselves as reviewer for these articles.
  • Imported some existing data to the demo wiki for beta testing.
  • Improved handling of deleted articles.
  • Improved logging.
  • People can now mark changes to courses and institutions as minor edit and provide an edit summary, much like when editing regular articles.


Jeroen De Dauw implemented a lot of new features, including ambassador profiles, personalized course listing for students, instructors and ambassadors, and article listing for students.


Jeroen De Dauw completed stuff struck through on the roadmap. Testing and code review will follow when complete.


Jeroen De Dauw has made the project almost feature complete. User testing is now finalized, and the team is still trying to get started getting code review.


Jeroen De Dauw completed the project. Sam Reed is now reviewing the code.


Jeroen De Dauw and Sam Reed finished review. Extension has been deployed, but temporarily disabled again due to a namespace/title conflict with a Star Trek: Voyager episode ("Course: Oblivion"!). This should be resolved shortly.


The extension is still disabled, pending resolution of namespace issues. The Education Program team has been presenting at various conferences around the world.


No update this month.


This month, we fixed several bugs in the Education Program extension and added one much-needed UI feature. More improvements are in the pipeline. For now, we're focusing on issues that are not linked to the extension's lack of integration with ContentHandler, and on features that might carry over to a new version of the extension. We've also begun the groundwork for redesigning the UX and broadening the extension's scope.


This month, we improved a feature that was built in October (allowing instructors to assign articles to student editors), completed a new feature (allowing instructors to add users as students) and started another one (displaying information about student editors' courses on Special:Contributions). We fixed some bugs, and kept up with changes in MediaWiki core. We also continued preliminary work—started last month—towards renewing the UX and broadening the extension's scope.


In December, we improved and fixed issues with the current Education Program extension, and continued preliminary work towards a new version of the software. We added a message on Special:Contributions about users' participation in courses, fixed a bug involving course undeletion and tweaked related styling, addressed a breaking change in core, improved i18n (in collaboration with Language Engineering) and began work on notifications for course-related events. We also fleshed out more ideas about the new version and possible synergies with other existing and proposed functionality, and reached out to other teams for input on this.


This month, once again we divided our time between the existing Education Program extension and work towards a new version of the software. We thoroughly analyzed database transactions in the current extension and fixed a slew of long-standing database-related bugs. Also on the current extension, we finished adding a notification type and notifications infrastructure, and worked on an improved course editing UX. For the new version, we studied workflow systems and considered how software for the Education Program and other outreach activities might use such a system. Adam Wight started on prototype workflow code. He also went through our code review backlog, bringing a multitude of new features and improvements to production.


For the first half of the month, we focused on the current Education Program extension. We fixed many old and new bugs—including a few remaining database-related problems—and improved the UI for editing courses. Also, two Facebook Open Academy students started work on new notifications for the extension. In mid-February the team shifted our focus to creating new software for many kinds of collaborative editing, including, but not limited to, Education Program courses. The first phase of this work, called editor campaigns, is being carried out with the Growth team.


This month, thanks to the work of Facebook Open Academy student JJ Liu, we added a new type of notification for course pages: users are now notified whenever they get added to a course. We also fixed inconsistencies with interface messages, user rights, and the deletion of institutions from the system.


This month we deployed several bug fixes, including disabling the malfunctioning and little-used student profiles feature and setting a sensible default end date for new courses. Thanks to volunteer Tony Thomas, the extension-related preferences were moved into the Appearance tab of Preferences.

Progress toward several other improvements was made in April: Sage Ross began implementing an API to generate lists of enrolled student editors from one or more courses, and the Facebook Open Academy students continued their work on new notification features, and also embarked on need-finding research for an improved course activity feed.


This month we fixed bugs and made some improvements to the Education Program extension. The biggest change was Sage Ross's addition of an API for listing students enrolled in courses. Also, students from Facebook Open Academy worked on a new notification and a new activity feed.


This month, the Education Program extension again received incremental improvements and bugfixes. Sage Ross of the Wiki Education Foundation submitted two patches: one that adds information to the API for listing students, and another that lets anonymous users compare course versions. Also, a student from Facebook Open Academy fixed a usability issue in the article assignment feature.


2015 01 29[edit]

Minutes: WMF & Wiki Education Foundation Education Program Extension Sync Up, January 29, 2015


Anna Koval (WMF)

Andrew Russell Green (WMF)

Adam Wight (WMF)

Erica Litrenta (WMF) 

Tighe Flanagan (WMF)

Sage Ross (Wiki Ed)


Let's discuss the current status and the future of the education program extension.   



Sage/WikiEd: Just asked for money (how much? from whom?) to turn what they have not into a full-fledged usable replacement for the extension so that in the next fall term WikiEd would not use the extension at all. It calls the API and it's an OAuth app. It would make posts on wiki pages but would not require any changes to mediawiki. The intention is that others could set up their own instances of it. It runs on Ruby on Rails. And they're getting it set up on wmflabs. So it can be used on other languages and other projects. The hope is to have it in August. Will know more in a couple of weeks if that aggressive ask will be granted. 

Andy: At karaoke, Erik proposed a 1-week sprint...

Erica: Will Wiki Ed and WMF coordinate? Or will Andy and Adam be focusing on other things? 

Sage: Wiki Ed is not managing the extension. They are moving away from the extension because of all the problems that it has. They are trying to create a system that won't require any development resources from WMF. Campaigns is much broader and more useful than just the education extension and the education use case and it's still a good idea for that work to move forward, in their opinion. Wiki Ed won't likely use it. Because we don't know when it will be done. 

Erica: Will what Wiki Ed is building be exported to other education programs?

Sage: In his volunteer time, will document it as much as possible so that program leaders with very little technical skills can implement it on their project. But he cannot manage the deployments. 

Andy: Internationalization? i18n contributions to WikiEd's RoR app are welcome.  Probably quite easy to do, but I don't know how hard it will be to tie into translatewiki.

Sage: Going to try to make it happen but can't make any promises while wearing his Wiki Ed hat. 

Andy: Replacing EPE has always been the plan. I would support replacing EPE with something better. That is the point of Campaigns. <3 

Sage is trying not to depend on anything that doesn't exist yet.  For example, their app is going to use oauth to make edits on behalf of the users, adding a course badge to their user page, adding the user's name to the course page, etc.  Even something like Campaigns could be done this way.

Adam's other notes:

* Getting WMF to install a RoR app is sadly not gonna happen.   :(    -- but deploying to wmflabs is fine :) Is it very impossible?  It's fine, but means that we won't have much official support from Operations.  Let's ask Dan Duvall, cos he loves Ruby and has introduced some Ruby-based stuff for browser testing.

* If we're wily, the RoR app would tie into the Campaigns API, etc... and we could still benefit from parallel development.

* Killing (no longer maintaining or developing & soon, replacing) EducationProgram extension seems to be on the table.   ???   :(   

* Question: WikiEducation is using a contractor, WINTR, to do the development, so coordination would probably be coordinated through Sage, via pull requests.


WikiEd and WMF alignment:

- programs

- software dev goals

- servers

- collaborations

Andy: The idea that something runs off-wiki doesn't make it not a wmf thing. The fact that Wiki Ed is doing something doesn't mean that WMF can't also use it. It's a laudable goal...

Andy: Per Erik, we can make a proposal for a short sprint, after which we'll reevaluate the outcome.  He offhandedly said something like 3 devs, a PM, and insisted that someone from the "community" be involved.

Erica: What he said is if we can make a strong case for it, then he will buy it. We need a team, a MVP and interest!! If we show all that, he doesn't see any reason why he would say no.

Sage said let's do an i18n hackathon on the (hopefully existing by then) off-wiki course page system at Wikimania! Adam said count me in! :)

Adam: Sage? What can we help with? :)

Tighe: My concern is for groups that don't have a support system like Wiki Ed in place. Maybe my team can host an instance of this, it would need to support multiple projects. It's great that Wiki Ed is innovating, but that can't result in a dead extension with no replacement.

Sage: One of the reasons we started building this off-wiki system is because of a conversation with Erik. It would be great if a 1-week spring with a 4-person team could get far enough to get Campaigns to keep track of people in a Campaign.

Andy to Adam: Is it really totally impossible to get WMF Ops to work with RoR??

Adam to Andy: There are people we can talk to...   mentioned above: Dan Duvall will be interested...

Erica: Note that for some reason Dan Duvall currently owes me a favor. Bear this in mind if you contact him about Ruby. ;)

Sage: from an ops perspective, Ruby's versioning mess sounds like a bit of a nightmare.

yeah, making it easy for Ruby devs to dive into the ecosystem = WIN

Adam: @sage yeah we would have to host a mirror of the rubygems repos...

+1 to andrew--I want to see a roadmap for WikiEd software as well

Sage is doing a planning sprint next week with WINTR next week: one outcome if which will be a more specific plan for what we'll be doing in the next year or so.

-- This is the current high level roadmap for Wiki Ed tech plans:

Erica: Concerns about internationalization. My team supports lots of languages.  language variants and RTL are not trivial. +1 to RTL! <3 Next steps:

So... what do we do when we leave this room?? What are our next steps and who is going to do what?? :)  

*WMF talks internally about what we want to do next (what we want to accomplish) and loop back with Sage. 

*WMF takes a look at the internationalization.  Try to draft a language engineer, write a blurb describing why we need this person.

* Adam talks to DDuvall about deploying and supporting a RoR app on labs.

*Another WMF meeting in the next week.

*Another meeting in 2 weeks or a month to touch base with Sage on his plans. 

-- Create, share and study design docs for upcoming work? 

-- Make a design proposal and study frameworks to use (OOjs UI?)


Ed team was told in their QR, if we have any asks for WMF tech support, Lila/Erik/Damon need to know:   

1. If we were to put technical resources behind this, what will we be able to do with it (or not do if we don't have it)   

2. A rough scope and an estimate of the cost from engineering or product 

See also:

BTW: Sage has a proposal for a Wikimania session related to this:


Status: We're looking at existing work that overlaps with our goals, and trying to integrate with the Wiki Education Foundation's recent work.

2015 02 03[edit]

Minutes from WMF Education Program Extension Sync Up, Feb 3


Anna Koval (WMF)

Andrew Russell Green (WMF)

Adam Wight (WMF)

Amir Aharoni (WMF)

Erica Litrenta (WMF)


To discuss what we might be able to build in a week, vis a vis a replacement for the education program extension, something that has a much broader application.

To loop in Language Engineering.



AA: Why Ruby on Rails? 

AG: The Wiki Education Foundation is developing tools off wiki with an external contractor and their application is on Ruby on Rails, but it is not internationalized. So the idea is to coordinate with what they're doing since we share the same goals. But to do so, we need to see how their app can be internationalized. Maybe it could be set up on labs? 

AA: RoR should have some internationalization capability. If the developers are storing the strings in English, they could be put on for our amazing community of volunteer translators to translate. 

EL: Do the extension or whatever replaces it need particular language support?

AA: The extension doesn't need any special internationalization. Don't know about the RoR app yet. Need to see it first. To move forward, need the strings on Does it have a user interface? (Yes.) That may need adaptation to RTL.

AA: It's likely that Translatewiki already can deal with RoR...   Siebrand will need full permissions to write on the github... 

AW: If there's no glue currently Translatewiki-RoR it should be easy to make. AA also says so.

AA: In addition to translating strings, we'd need maybe to flip some icons and maybe ake some CSS adaptations, generally doesn't seem like a lot of work even so.

EL: On enwiki now, programs from the US/Canada use the Wiki Ed dashboard, but other programs use the old education program extension. Should the Foundation host an instance of their code?

AW: Someone needs to support it and we're probably the best candidate for that. Dan Duvall might be interested in giving us official support. 

AG: Another option is that Wiki Ed and WMF share server space and there could be a switcher for which project and which language you want to see dashboard data for?

WEF is attempting to replace the EducationProgram extension.

Note that the color schemes are different on the resulting course pages.

A larger tech roadmap will help.

Also knowing the education program's non-technical needs for the development of the product. 

Need to get the users involved.

Need to know if Wiki Ed has done any user research already. 

And was there any user research done by Steven Walling and the Growth group for Editor Campaigns? 

Brainstorming about requirements

  • * Pau, Abby (and friends) could do user experience research to gather real needs.
  • * An RfC for community input on the extension?
  • * Need to discuss more internally :)
  • * Bring Campaigns back to life.
  • * Integrate with WikiMetrics to make pulling reports less terrible (AG has done a lot here, for Campaigns).

Steps to add i18n to the WEF app:

* Choose a Ruby i18n library.

* Wrap all strings in the dashboard app, and document the strings for context (like the "qqq" language in MW).

* (WEF) Give Siebrand Mazeland permissions to the dashboard github repo.

* (WEF) Give Amir a link to the repository of the icon and image files used.

* (AA) Look into RTL issues.

* (SM) Create a project on for the dashboard.

* (SM) Set up synchronization to pull new translations into the dashboard 

Other steps:

* (AW) Ask Dan Duvall to support the education dashboard deployment

* (AW) Mirror the Wiki Ed dashboard source repo

* (AW) Reach out to the Gather folks and see if they want to collaborate

* (AW) Hunt down Steven Walling's road map for Campaigns

  • **
  • **

* (??) Find a replacement for Steven Walling 


  • How to keep Campaigns alive 
  • Make sure dashboards works on mobile
  • Make sure there's synergy between Campaigns and Gather
  • Do we need to talk with Dan Duvall about Ruby?
  • Do we actually need a language engineer? Was the team contacted?
    • AK: Yes. I've invited Amir Aharoni with messaging input from AW. <3 He will be joining our call. <3 
    • AW: my suggestion was that we should ask for a language engineer to help with the Ruby on Rails i18n, but they probably don't need to be involved in our planning process.  We would contact them before doing our hackathon to add i18n to WEF's dashboard application, they can at least point us in the most sane direction.
    • The question is, are there parts of the code or of the program itself which are right now inadequate because of lack of support for a given language? Or is this something which needs to be resolved at a higher, MediaWiki level? For example, the extension is being used at a couple of RTL wikis, need to check if it works there or they have demands which weren't met yet.
  • Do we need to look for volunteer devs? (Anna already needs one for a different project what project? - Someone to bring forward, adapting it so that when Edu documentation gets screenshots, they can be updated automatically when needed and taken in multiple languages). AW: My unprofessional opinion is that we should elaborate the most ambitious possible tech roadmap for WEP, then pare it back to a few first steps.  If there is a tech roadmap already, can someone link here?
  • Sage has been updating this page, last edit was April 2014.  Does it still reflect priorities for WEP at WMF? See and instead? 
  • The last status on mediawiki is . We should update it?

See also:

2015 02 06[edit]

Minutes from Gather - Education Program coordination meeting, Feb 6


AKoval, AGreen, JKatz, AWight


To determine what the overlap might be between our projects!


We shared the following material:

Overview of Education Program Extension:

Overview of the "Campaigns" project:

An example course with articles, associated editors and reviewers:

Metrics dump of coursework results:

List of courses:

Staging site for Ruby on Rails dashboard, meant to replace Extension:EducationProgram

Wikimania session submission to discuss using the education extension across the wider movement for non-education outreach:

Gather mockups (unknown URL)


  • It looks like there is great potential for synergy here.  Jon has added the Education Program to his list of stakeholders for Gather work.  We're talking about leaning on Gather as a standalone component that would provide the associations between students and articles, reviewers and articles, and then even higher-order groupings such as course, institution, and country.
  • Gather will be prototyped on mobile web first, future direction is unknown.
  • Education will interface with Gather via the API, and would like to participate in design.
  • Gather collections have a title, which is almost perfect for our workflows.  We might consider asking for concrete collection "type" however, such as "Reviewing" which would plug into an actual workflow.
  • Education is asking for collections of collections, to allow higher-order views such as course-wide article work.
  • Gather is already thinking about potential for watchlists based on these collections, which would substitute for our activity feed.  Integrating with the MediaWiki core watchlists might be uphill, it might have to be done entirely as an extension.
  • Gather is already planning to include ordering between articles.  I don't know what that would look like for higher-order collections.
  • I accidentally mentioned a possible use case for "automatically maintained" collections, such as grouping everything being worked on by people belonging to a campaign.
  • Another far-fetched idea is to feed calculated metrics back into the collections, e.g. "your class expanded these articles by 50%".






Update from WikiEd[edit]

Wiki Ed is resuming active development on the Dashboard system on March 9, and has committed to developing it into a full-fledged replacement for the EP extension in time for the Fall 2015 term of the US/CA program (ie, ~August). That will include integrating the Assignment Design Wizard ( ) into the Dashboard, and adding all the core features of the EP extension such as course creation, enrollment, and assigning articles. Even aside from the Ops and RelEng issues, it's going to be a nontrivial project to either maintain a general Wikimedia fork or keep the main WikiEd codebase in a sufficiently flexible and configurable state that it could be used for global education programs (and other outreach and coordinated editing programs). I will help out as much as I can, and am looking forward to working on it at the Wikimania Hackathon with anyone interested. In an ideal world, some dedicated development time to collaborate on keeping up with the Wiki Ed stuff would go a long way. But barring that, between me, Adam, and anyone else who wants to pitch on a volunteer basis, I'm hopeful that the Dashboard will be in a usable state for non-Wiki Ed users later this year. --Ragesoss

Update from WMF[edit]

We cannot thank or commend Sage enough for doing this development work with us on the side given that it's not within his scope of work now at all. We are deeply indebted and eternally grateful to him. <3


Sage added Niklas Laxström (Nikerabbit) and Siebrand Mazeland to the repo. See:

The WikiEd dashboard only works in English. Sage and Adam have made it possible for it to show all the user interface text in any other language. You do that by adding a locale parameter in the url.

Sage and Adam have also done some RTL work, so it will be able to support Hebrew and Arabic.

We're pretty close to having i18n, but the following issues are still open:

  • We need to create a project. We need to translate the interface in translatewiki. Nikerabbit wrote a patch. Samir created the logo and Anna wrote the descriptions. See:
  • task T89008: User language needs to be detected and acted upon. Currently, we have to hardcode the language into the URL parameters.
  • task T91676: There's a lot of work to be done, starting with design (T93655), to figure out how different languages and projects should interact in the dashboard. To force the question, there are lots of courses which edit in multiple languages, or edit across projects.

Community Advocacy detected a privacy breach on enwiki caused by the Education Program Extension. See:

Note that patches have been successfully merged into the git repository. See:


There are outstanding questions about the UX: How do we want it to look? What are all the features it needs to have. There are some complex use cases (for example, some programs with many languages, many projects).






Talk page post


Mailing list thread