Google Summer of Code/Past projects

This page tries to keep up with the current status of all past Google Summer of Code projects. For some quantitative analysis, see User:MaxSem/GSoC analysis.

See also Outreachy/Past projects.

2018
See GSoC 2018 Code analytics for statistics on code contributed by these projects.

Predict relevance of search results from historical clicks using a Neural Click Model
The task was to see if search results ranking can be improved upon by using neural networks to predict search ranking rather than currently used Dynamic Bayesian Networks.


 * Student: Kdhingra2210
 * Mentors: EBernhardson and TJones
 * Outcome: Multiple models were developed over a pre-existing patch by mentor Erik, with an aim of having a model which works well in the real world testing. As of now, we have finalized a single model for final AB testing.
 * Link to the test results board: clickmodel_wmf
 * Link to project task on Phabricator: T186742
 * Link to original project proposal on Phabricator (it was a different one): T190660
 * Link to commits: Merged Commits
 * Link to final report: https://gerrit.wikimedia.org/r/c/search/MjoLniR/+/452655/1/docs/neural_click_model.rst
 * Link to weekly reports: Bi-weekly Reports
 * Link to weekly posts: Bi-weekly Blogposts

[#1Lib1Ref] Build a "worklist" tool for campaigns and in-person editing events
Megha developed the worklist tool from scratch that now has a front-end layout, database schema, login functionality and a feature to create and search through worklists.

Try out the new tool at https://tools.wmflabs.org/worklist-tool/


 * Student: Meghasharma213
 * Mentors:
 * Outcome:
 * Link to project task on Phabricator: T1234
 * Link to original project proposal on Phabricator (it was a different one): T123
 * Link to commits: Merged Commits
 * Link to final report: https://docs.google.com/document/u/2/d/1I3htDwicfIABW3gJWBNsLjPucqSFYFxn72euFSHtZXo
 * Link to weekly reports: Bi-weekly Reports
 * Link to weekly posts: Bi-weekly Blogposts

Improve Data Explorer on query.wikidata.org
For the Wikidata Query project, Prasanna implemented resizable and draggable windows for the Data Explorer, improved the Graph Explorer by adding support for incoming links, and gave these explorers new look by adding toolbars.


 * Student: Prssanna
 * Mentors:
 * Outcome:
 * Link to project task on Phabricator: T1234
 * Link to original project proposal on Phabricator (it was a different one): T123
 * Link to commits: Merged Commits
 * Link to final report: https://medium.com/@prssanna/gsoc-18-in-60-seconds-64c475f0d47a
 * Link to weekly reports: Bi-weekly Reports
 * Link to weekly posts: Bi-weekly Blogposts

[Analytics] Improvements to Wikistats 2.0
Sahil improved the Wikistats 2.0 front-end, aesthetically & functionally, and fixed many bugs, great and small. He also improved the accessibility of the website.

Try it out at https://stats.wikimedia.org/v2/, and compare with its predecessor https://stats.wikimedia.org/.


 * Student: Sahil Khokhar
 * Mentor: Marcel Ruiz Forns
 * Outcome: Project took Wikistats 2.0 close to a finished product meant to replace Wikistats. Made the frontend of Wikistats 2.0 more user friendly (aesthetically & functionally) besides adding new features such as, new Legacy Pageviews Metric, new UI for footer & topic explorer, dynamic popups for bar & line charts etc.
 * Link to project task on Phabricator: T189210
 * Link to project proposal on Phabricator: T189964
 * Link to commits: Merged Commits for Wikistats 2.0
 * Link to final report: Final Report GSoC 2018@WikiMedia Foundation
 * Link to weekly reports archives: Weekly Updates

Add a spreadsheet interface for modifying multiple pages to the Page Forms extension - Special:MultiPageEdit
Create a spreadsheet interface which would allow users to edit all the template calls of a particular template embedded in various pages of the wiki.


 * Student: Yashdeep Thorat
 * Mentor: Yaron Koren, Nischay Nahata, Balakarthikeyan Rajan
 * Outcome: Added a new special page to the Page Forms extension to edit multiple pages - Special:MultiPageEdit. The interface also allows users to create and rename pages. Moreover, it supports pagination for large data sets. The spreadsheet interface supports input types like text, text area, checkbox, date, combobox and tokens. (See example of page.)
 * Link to project task on Phabricator: T63989
 * Link to project proposal on Phabricator: T189743
 * Link to commits: https://gerrit.wikimedia.org/r/#/q/yashdeep97
 * Link to final report: MultiPageEdit Special Page for the MediaWiki Page Forms extension - Final Report
 * Link to weekly reports archives: Bi-weekly Blog Posts

OOUI Tutorial Migration
Create a 2 tutorials and an index page as a basis for a larger tutorial system. The tutorials simplify stepping into development with OOUI, a widget JavaScript library used across Wikimedia projects.

This project is hosted by the OOUI Demos project, as part of the OOUI Documentation. It was merged on August 13, 2018, and was included in the latest release of OOUI (version 0.28.0, August 16, 2018). The OOUI tutorials project is covered by a single PR, but I have other contributions. I started out with a different project, which was canceled, and while I was in-between projects I have made my other contributions. All merged commits are included in the link below and mentioned on my final report.
 * Student: Hagar Shilo
 * Mentors: Moriel Shottlander, Roan Kattouw, and I would also include Volker Eckl as an honorary mentor.
 * Outcome: I edited, updated and redesigned an older version of a couple of tutorials that teach the basics of OOUI by building a ToDo list app, built an index page for them and moved the project to the official OOUI Demos. The new tutorials are hosted in a more accessible location than before, and they now include a very important new feature: interactive demo apps that demonstrate every step of the development process. (Visit the index page.)
 * Link to project task on Phabricator: T198845
 * Link to original project proposal on Phabricator (it was a different one): T163433
 * Link to commits: Merged Commits
 * Link to final report: OOUI Tutorial Migration - GSoC Final Report
 * Link to weekly reports: Bi-weekly Reports
 * Link to weekly posts: Bi-weekly Blogposts

Improve the Cargo Special:Drilldown page
 
 * Student: Nikhil Kumar
 * Mentor: Yaron Koren, Feroz Ahmad, Derick N. Alangi
 * Outcome: Major ones include -
 * Added custom drilldown tabs to the Special:Drilldown page. It gives you the complete freedom to customise your tabs. You can add any no. of tabs, any field you want to include in the results and even display the results in any format supported in Cargo.
 * Added support for parent tables (See example here.)
 * Link to project task on Phabricator: T184387
 * Link to project proposal on Phabricator: T190207
 * Link to commits: https://gerrit.wikimedia.org/r/#/q/Nikhil-nk
 * Link to final report: GSoC 2018 @ WikiMedia Foundation: Final Report
 * Link to weekly reports archives: Bi-Weekly Reports

Feedback on how pictures uploaded to Commons get used: statistics, barnstars, light gamification
The project aimed at sharing feedback about uploaded photos, educating people about topic & copyright and adding some gamification to drive engagement.

To try these features, install Wikimedia Commons App from Play Store, Log in, and go to the Settings to opt-in as Beta Tester.


 * Student: Tanvi Dadu
 * Mentor: Josephine Lim, Vivek Maskara
 * Outcome:
 * Added Achievements module that provides feedback about uploaded photos and assigns level and batches to user on basis of this feedback.
 * Added Quiz for users who have a high upload revert rate.

Both of these modules were released on as a part of v2.8 release on 9 August, 2018


 * Link to project task on Phabricator: phab:185036
 * Link to project proposal on Phabricator: phab:189788
 * Link to commits: Merged Commits
 * Link to final report: GSoC 2018: Project Summary
 * Link to weekly reports archives: Bi-Weekly Blog Reports

Browse feature in Wikimedia Commons App
Ujjwal created the Explore feature that is now available in the Wikimedia Commons app.

Try it out: https://play.google.com/store/apps/details?id=fr.free.nrw.commons


 * Student: Ujjwal Agrawal
 * Mentor: Neslihan Turan, Nicolas Raoul
 * Outcome:
 * Added Image Search feature on Wikimedia Commons App.
 * Added Category Search feature on Wikimedia Commons App.
 * Added Details Page which includes images, subcatergories, parent categories of the category.
 * Added Skip login Funcnality in App

Most of my code is included in version 2.8, which is currently available in beta on Google Play, and should be released to all users within a few weeks.


 * Link to project task on Phabricator: phab:188877
 * Link to project proposal on Phabricator: phab:188597
 * Link to commits: Merged Commits
 * Link to final report: GSoC 2018: Final Report
 * Link to weekly reports archives: Bi-weekly Blog Posts

Build an Article Finder tool for program leaders and participants to find good topics to work on

 * Student: Pratyush Singhal
 * Mentor: Sage Ross, Jonathan Morgan
 * Outcome:
 * Developed article finder tool to search and filter articles for participants to work on.
 * Integrated the tool with dashboard and course pages.
 * Provided several metrics and hooks to filter and select articles for students to work on.

The Article finder tool is fully functional and live in production. You can find the deployed version here.


 * Link to project task on Phabricator: phab:111416
 * Link to project proposal on Phabricator: phab:189991
 * Link to commits: Merged Commits
 * Link to final report: GSoC 2018 - Final Report
 * Link to weekly reports archives: Bi-weekly Blog Posts

Improvements for the Toolforge 'webservice' command

 * Student: Neha Jha
 * Mentor: Bryan Davis, Andrew Bogott
 * Outcome:
 * Added the functionality of adding command line arguments through a config file
 * Added documentation for the webservice package
 * Improved the output of webservice status and fixed similar bugs
 * Link to project task on Phabricator: phab:175768
 * Link to project proposal on Phabricator: phab:190638
 * Link to commits: Commits
 * Link to Final Report: GSoC Final Report

Emoji Twitter bot for Commons images from NYPL fork
The new bot created by Rosalie Perside respond to mentions on twitter containing an emoji, and replies with an image from Wikimedia Commons.

See the bot in action at https://twitter.com/WmEmoji.


 * Student: Rosalie Perside
 * Mentor: Ariel, Derick, Sebastien
 * Outcome:
 * Create a twitter account for the bot
 * Created a bot from the fork for commons images
 * Made documentation for future contributors
 * Link to project task on Phabricator:  T190163
 * Link to project proposal on Phabricator:  T143593
 * Link to commits:
 * Link to Final Report:

2017
View monthly highlights from the weekly blogposts of Google Summer of Code 2017 and Outreachy Round 14 candidates

Watch the full final project showcase(slides)

Automatic editing suggestions and article feedback in Programs & Events Dashboard
Add to the Wiki Education Foundation Programs & Events Dashboard the ability to provide automatic suggestions to student editors about how to get started with improving their assigned Wikipedia articles.


 * Student: Keerthana S
 * Mentors: Sage Ross, Jonathan Morgan
 * Outcome: The automatic feedback feature is successfully included in the dashboard; it is shown in the MyArticles component that shows the articles edited by a particular user and also shows them in the Articles Edited Section for the suggestion to be reviewed by instructors.
 * Link to project task on Phabricator: T160840
 * Link to commits: Summarized in blog post
 * Link to weekly reports archives: T164627

Hierarchy support in Cargo
Add support for hierarchical data in the Cargo extension and, to a lesser extent, the Page Forms extension.


 * Student: Feroz Ahmad
 * Mentors: Yaron Koren,  Nischay Nahata, Tobias Oetterer
 * Outcome: Successfully added to Cargo the ability to create, store and query hierarchy fields. Also added to Page Forms hierarchy inputs in the pages Special:CreateClass and Special:CreateTemplate.
 * Link to project task on Phabricator: T161609
 * Link to commits: Cargo Merged Commits Page Forms Merged Commits
 * Link to weekly reports archives: T164623
 * Project showcase video URL: https://www.youtube.com/watch?v=8GFfZS1z74c

Glam2Commons
Develop a tool which allows any Wikimedia Commons user to import images to Commons from the online repositories of a number of GLAMs (galleries, libraries, archives and museums) easily.


 * Student: Siddhartha Sarkar
 * Mentors: Bas,  Zhuyifei,  Tom
 * Outcome: The Glam2Commons tool was successfully created and is hosted on Wikimedia Toolforge.
 * Link to project task on Phabricator: T161670
 * Link to commits: Source Code
 * Link to weekly reports archives: Weekly Reports, Final Report
 * Project showcase video URL: https://www.youtube.com/watch?v=jjHEB5p8xG8

Improvements to Proofread Page and Wikisource
Improve and enhance the Proofread Page extension and Wikisource, through important bug fixes that are left as backlog and implementation of significant features that would make it more user-friendly.


 * Student: Amrit Sreekumar
 * Mentors: Tpt, Yann Forget
 * Outcome: Successfully implemented Index: Pages editing form using OOjs. Created an auto-validate privilege to override the two-step validation of proofread pages. Migrated the Proofread zoom feature to OOjs.
 * Link to project task on Phabricator: T128840
 * Link to commits: Gerrit
 * Link to weekly reports archives: Weekly reports
 * Project showcase video URL: https://www.youtube.com/watch?v=ZVBAFAEkvl4

Enhanced usability for Wikimedia Programs & Events Dashboard
Make various enhancements to the Wiki Education Foundation Programs & Events Dashboard, including doing user testing and improving accessibility on mobile devices.
 * Student: Sejal Khatri
 * Mentors: Sage Ross, Jonathan Morgan
 * Outcome: Solved high priority issues, conducted user testing sessions, documented the feedback, Enhanced the usability of dashboard on Mobile Devices.
 * Link to project task on Phabricator: T161929
 * Link to commits: Githib Commits Listen in google spreadsheet
 * Link to weekly reports archives: T164612
 * Project showcase video URL: https://www.youtube.com/watch?v=TbTfslq3sL4

Thanks support in Pywikibot
A second attempt at a project originally attempted in 2016. Give Pywikibot bots the ability to use the Thanks extension on normal revisions and Flow posts, as well as work with Thanks log entries and generate reports for thankers and thankees on wikis.


 * Student: Alexander Jones
 * Mentors: John Vandenberg
 * Outcome: Pywikibot bots can now thank Flow posts and normal revisions. A script was written to generate reports compatible with Faebot's. Thanks log entries can now be used in Pywikibot. Progress was made on publicly logging Thanks notification changes and on Flow revision support in Pywikibot.
 * Link to project task on Phabricator: T161426
 * Link to commits: List of Gerrit changesets (public GitHub gist)
 * Link to weekly reports archives: T164531

Upgrade and improve the Quiz extension
Update and upgrade the Quiz extension, add new features, and remove legacy code.


 * Student: Harjot Singh Bhatia
 * Mentors: Marielle Volz
 * Outcome: The extension was successfully improved, including the addition of unit tests and new features like feedback behavior.
 * Link to project task on Phabricator: T160257
 * Link to commits: Github Merged Commits
 * Link to weekly reports archives: T164645

Accuracy review of Wikipedias
Create an accuracy review tool to make it easier for users to find and review inaccurate content in Wikipedia articles.


 * Student: Priyanka Mandikal
 * Mentors: James Salsman, Fabian Flöck
 * Outcome: The tool was created, and is available at https://tools.wmflabs.org/arowf/
 * Link to project task on Phabricator: T129536, T89416

Contributors extension improvements
Original name "List of Contributors". Improve the Contributors extension.


 * Student: Devi Krishnan
 * Mentors: Addshore, Niharika Kohli
 * Outcome: The Contributors extension now has its own database table, which makes querying faster; and the display of the contributors list was improved.
 * Link to project task on Phabricator: T129123

Extension for page creation/editing notifications
Create an extension to allow for notification of specific types of edits, making use of the Echo extension.


 * Student: Abhinand N
 * Mentors: Yaron Koren, Ike Hecht
 * Outcome: The EditNotify extension was created; it is currently at "beta" status.
 * Link to project task on Phabricator: T130924

HTML email support in MediaWiki

 * Student: Smriti Singh
 * Mentors: Tyler Romeo, Tony Thomas
 * Outcome: Project was not successful.
 * Link to project task on Phabricator: T130490

Improving static analysis tools for MediaWiki
Improve the MediaWiki-CodeSniffer linting tool.


 * Student: Lethe Xie
 * Mentors: EBernardson, Kunal Mehta
 * Outcome: Many changes were merged in to the CodeSniffer tool. You can see more information here.
 * Link to project task on Phabricator: T130574

Pywikibot categorisation of Commons media using computer vision

 * Student: AbdealiJK
 * Mentors: John Mark Vandenberg, DrTrigon
 * Outcome: The catimages.py Pywikibot script was rewritten to become a generic Python library. The bot script still requires fixing some minor bugs, refactoring, and then getting a bot request approved on Commons. See here for more information.
 * Link to project task on Phabricator: T66838, T129611

Pywikibot Support for Thanks
Add handling of the Thanks extension to Pywikibot.


 * Student: Sriharsh Bhyravajjula
 * Mentors: John Mark Vandenberg, Kunal Mehta
 * Outcome: Project was not successful.
 * Link to project task on Phabricator: T130585

Wikidata support for IFTTT
Improve the Wikimedia web app that provides an API for IFTTT to also provide triggers for Wikidata events.


 * Student: Alangi Derick
 * Mentors: Stephen Laporte, Benedikt Seidl, Marius Hoch, Lydia Pintscher
 * Outcome: Triggers were successfully added (see here).
 * Link to project task on Phabricator: T118463

WikiToLearn projects
Special mention should also be made of the participation of the WikiToLearn organization in GSoC 2016; many of their projects involved MediaWiki-related development. The relevant WikiToLearn projects were:
 * CollaborativeEditor - Student: Sagar Hani, Mentors: Cristian Baldi, Gianluca Rigoletti
 * LatexCompleter and a modified version of CodeEditor (see here) - Student: Falit Jain, Mentors: Gianluca Rigoletti, Irene Cortinovis
 * OfflineExtension - Student: Srijan Agarwal, Mentors: Gianluca Rigoletti, Irene Cortinovis
 * WikiRating - Student: Abhimanyu Singh Shekhawat, Mentor: Davide Valsecchi

Allow contributors to update their own details in tech metrics

 * Student: Sarvesh Gupta
 * Mentors: Alvaro, Dicortazar
 * Outcome: Failed in mid-term due to absence of substantial work
 * Link to project task on Phabricator: T60585

Enhanced cross-wiki watchlist

 * Student: Jan Lebert
 * Mentors: Yuvi Panda and Kunal Mehta
 * Outcome: The crosswatch tool was created. It was available for a while on Wikimedia Labs, here, but no longer seems to be installed.
 * Link to project task on Phabricator: T92955

Extension to identify and delete spam pages

 * Student: Vivek Ghaisas
 * Mentors: Yaron Koren and Jan Luca
 * Outcome: The SmiteSpam extension was successfully created; it is currently installed on many non-Wikimedia wikis.
 * Link to project task on Phabricator: T90238

Graph editing in VisualEditor
Modify the Graph extension to allow for editing graphs within VisualEditor.
 * Student: Frédéric Bolduc
 * Mentors: Moriel Schottlender, Marielle Volz
 * Outcome: Basic functionality was added to the Graph extension to allow for displaying graphs, and editing basic data, in VisualEditor. There has not yet been significant usage of this feature.
 * Link to project task on Phabricator: https://phabricator.wikimedia.org/T89287

Implement Flow support in Pywikibot

 * Student: Alexander Jones
 * Mentors: John Mark Vandenberg, Matthew Flaschen
 * Outcome: Loading content, creating topics, replying to posts, locking and unlocking topics, and fetching post and topic revision history were all implemented; further progress was stalled by unforeseen bugs in existing code.
 * Link to project task on Phabricator: Link

Implement OAuth support in Pywikibot

 * Student: Jiarong Wei
 * Mentors: John Mark Vandenberg, Aaron Halfaker
 * Outcome: OAuth support was successfully added to Pywikibot (see documentation).
 * Link to project task on Phabricator: https://phabricator.wikimedia.org/T74065

Newsletter extension for MediaWiki
Rewrite the Newsletter extension to be more comprehensive, allowing publishers to create newsletter and announce new issues and allowing users to browse and subscribe to newsletters.


 * Student: Tina Johnson
 * Mentors: Tony Thomas and Quim Gil
 * Outcome: All tasks listed on the project board were completed. There remains an ongoing project to deploy this extension in Wikimedia.
 * Link to main project task on Phabricator: Goal: Newsletter extension for MediaWiki

Unified Language Proofing tools integration framework
Add language proofing support for VisualEditor.
 * Student: Ankita Kumari
 * Mentors: Amir Aharoni, Eran Rosenthal
 * Outcome: The LanguageTool extension was created, currently at "experimental" status and not used by any wiki.
 * Link to project task on Phabricator: Unified language proofing tools integration framework

Wikidata Page Banner Extension For Wikivoyage
Create an extension which displays page banners that can be based on data in Wikidata.
 * Student: Sumit Asthana
 * Mentors: Jon Robson and Nicolas Raoul
 * Outcome: The WikidataPageBanner extension was created and enabled on Wikivoyage with significant push from the mentor. The function is used for about 14k distinct banners in 3 Wikivoyage languages.
 * Link to project task on Phabricator: Pagebanner extension for Wikivoyage

Add proper email bounce handling to MediaWiki
Add VERP, or Variable Envelope Return Path, to MediaWiki mailing, so that bounced messages can be handled better.


 * Student: Tony Thomas
 * Mentors: Jeff Green and Kunal Mehta
 * Outcome: Two extensions were created for this project: BounceHandler and SwiftMailer. BounceHandler is in use on production Wikimedia projects production, a deployment which began in November 2014. Tony was an active MediaWiki contributor before GSoC (since Google Code-in 2013), and remains so afterwards.

Automatic cross-language screenshots for user documentation
Automate the process of creating screenshots of MediaWiki software, across many different languages.


 * Student: Vikas S Yaligar
 * Mentors: Amir Aharoni, James Forrester and the Quality Assurance team
 * Outcome: The Language Screenshots project was completed successfully. It has been used to create screenshots for VisualEditor; see, for example, the VE user guide in English, Hebrew and Dutch.

Book management in Wikibooks/Wikisource
Modify the BookManagerv2 extension in order to improve its user interface and allow it to handle books not created with that extension.


 * Student: Deepali Jain
 * Mentors: Raylton P. Sousa and Tpt
 * Outcome: One change was merged in, though another was later abandoned. The extension itself has become unmaintained.

Catalogue for MediaWiki extensions
Enable ratings and potentially other ways for users to judge the quality of different MediaWiki extensions.


 * Student: Aditya Chaturvedi
 * Mentors: Markus Glaser and Mark Hershberger
 * Outcome: A rating system was successfully added to the site WikiApiary; see here, for example. There has been no consensus yet to display these ratings directly in mediawiki.org.

Chemical Markup support for Wikimedia Commons
Add the ability to display chemistry information from within wikitext in Wikimedia Commons.


 * Student: Rillke
 * Mentors: Gilles Dubuc, Brian Wolff and Bryan Davis
 * Outcome: The MolHandler extension was created, which allows for displaying chemical table files in wiki pages. It has remained at "experimental" status.

Generic, efficient localisation update service
Improve on the LocalisationUpdate extension to make the delivery of new translations, such as from translatewiki.net to Wikimedia wikis, more efficient.


 * Student: Kondi
 * Mentors: Kartik Mistry, with assistance by Niklas Laxström
 * Outcome: Code for the LUv2 Server was created and was formerly viewable here, though it is no longer viewable. Such a server would also require a MediaWiki extension to interact with it, which was never created.

Google Books to Internet Archive to Commons upload automation tool
A tool to automatically import the contents of a book stored in Google Books to both the Internet Archive and Wikimedia Commons.


 * Student: Rohit Dua
 * Mentors: Aubrey, Yann and Tpt
 * Outcome: The BUB, or Book Uploader Bot, was created. Its code can be seen here and the tool can be seen in use at Wikimedia Tool Labs, where Rohit continued to maintain it after the end of GSoC. The Book Uploader Bot has been used to uploade over 300K books as of 2017.

MassMessage page input list improvements
Modify the MassMessage extension to be able to use JSON, instead of parser functions, to define delivery lists.


 * Student: wctaiwan
 * Mentors: Kunal Mehta and Prateek Saxena
 * Outcome: Modification was successful. wctaiwan is now listed as a co-author of the extension.

A modern, scalable and attractive skin for MediaWiki
Create a new and modern-looking MediaWiki skin.


 * Student: Jack Phoenix
 * Mentors: Isarra, Emufarmers
 * Outcome: Project created the "BlueSky" skin, which is installed at the WMF Social Tools wiki; it seems to have become broken with MediaWiki 1.27. Jack was an active MediaWiki contributor before GSoC, and remains so afterwards.

Parsoid-based online detection of broken wikitext
Modify the Parsoid service to be able to report all instances of incorrect wikitext to a central location.


 * Student: Hardik Juneja
 * Mentors: C. Scott Ananian and Subramanya Sastry
 * Outcome: A variety of changes were merged in to Parsoid.

Separating skins from core MediaWiki
A high-impact project to make skins in MediaWiki more modular, akin to extensions.


 * Student: Bartosz Dziewoński
 * Mentors: Jon Robson, Ori Livneh
 * Outcome: Code was successfully merged in to MediaWiki, resulting in skin handling changing significantly in MediaWiki version 1.24, including skins no longer being included directly in core. Bartosz was an active MediaWiki contributor before GSoC, and remains so afterwards.

Switching Semantic Forms autocompletion to Select2
Add a new input type, "tokens", and modify another, "combobox", in the Semantic Forms extension, both using the Select2 JavaScript library.


 * Student: Jatin Mehta
 * Mentors: Yaron Koren and Stephan Gambke
 * Outcome: Select2-based input types were successfully added, and released in SF version 2.8.

Tools for mass migration of legacy translated wiki content
Add to the Translate extension the ability to automatically "prepare" a page for translation by adding the necessary tags and to import old translations in the system.


 * Student: Pratik Lahoti
 * Mentors: Niklas Laxström and Federico Leva
 * Outcome: The pages Special:PageMigration and Special:PagePreparation were added to the Translate extension and have been used for thousands of edits on Wikimedia projects; see documentation on this feature.

UniversalLanguageSelector fonts for Chinese wikis
Modify the UniversalLanguageSelector extension to create font files for Chinese-language pages that only contain the characters necessary for each page, instead of all 80,000+.


 * Student: Aaron Xiao
 * Mentors: Liangent and DChan (WMF)
 * Outcome: The code had unresolved bugs, and was never put into production. A demo was formerly viewable here, but is no longer viewable.

Usability improvements for the Translate extension
A project to make a variety of improvements to the Translate extension, including a clearer user interface, more features, and bug fixes.


 * Student: Kunal Grover
 * Mentors: Robin and Siebrand Mazeland
 * Outcome: Kunal created many changes and fixes to MediaWiki core, the Translate extension, and a few other extensions. Most were merged in, though some are still under review. The main change was ready for deployment but got stuck for 2 years waiting for a database schema change.

Wikidata-based book annotation tool
Enable annotation of book contents in order for facts from those books to get imported into Wikidata.


 * Student: Amanpreet Singh
 * Mentors: Cristian Consonni, Andrea Zanni, Simone Fonda, Christian Morbidoni and Luca Martinelli
 * Outcome: A browser plugin was successfully created that does this; it is viewable at https://github.com/apsdehal/WikidataAnnotationFeeder/.

Android app for MediaWiki translation
An Android app to translate in a MediaWiki site that has the Translate extension installed, such as translatewiki.net or meta.wikimedia.org.


 * Student: Or Sagi
 * Mentors: Niklas Laxström and Yuvaraj Pandian
 * Status: The app was successfully created, and has gotten good reviews.

Bayesian Spam Filter Extension for MediaWiki
Create an extension to detect spam edits using Bayesian techniques.


 * Student: Anubhav Agarwal
 * Mentors: Platonides and Chris Steipp
 * Status: The BayesianFilter extension was created, and was at status "beta" before becoming unmaintained. It is not known to have ever been used.

Improve support for book structures
Modify the BookManager extension to provide a user-friendly form to organize individual pages and subpages into a single book structure, for use on sites such as Wikisource and Wikibooks.


 * Student: Molly White
 * Mentors: Raylton P. Sousa and Mwalker
 * Status: The BookManagerv2 extension was created. It had some bugs and missing features, some of which were fixed or implemented in Deepali Jain's 2014 GSoC project. It has since become unmaintained.

Improvement of glossary tools
Improve the functionality of the two MediaWiki glossary extensions: Lingo and Semantic Glossary.


 * Student: Yevheniy Vlasenko
 * Mentors: Yury Katkov and Stephan Gambke
 * Status: Various features were added to one or both extensions, including a &lt;noglossary&gt; tag, integration with the Approved Revs extension, and customizing the tooltip display using templates.

Incremental data dumps
Create a system for MediaWiki data dumps that only show the differences from the previous dump, enabling much faster transfer.


 * Student: Petr Onderka
 * Mentors: Ariel Glenn and Tyler Romeo
 * Status: Code is mostly finished (though file compression was not done), but requires review and merge.

jQuery.IME extensions for Firefox and Chrome
Create Firefox and Chrome browser plugins/extensions that make use of the jQuery Input Method Editor (jQuery.IME) library for providing input methods across different languages.


 * Student: Praveen Singh
 * Mentors: Santhosh Thottingal and Amir E. Aharoni
 * Status: The extensions were both created, and are available at the Chrome Web Store and the Mozilla Add-ons repository, respectively, both under the name "Wikimedia Input Tools". The source code for both is viewable here and here.

Language Coverage Matrix dashboard
Create an interactive tool for viewing MediaWiki's current language support.


 * Student: Harsh Kothari
 * Mentors: Runa Bhattacharjee and Alolita Sharma
 * Status: The tool was created, and the code is available here. A demo was previously viewable here.

Mobilize Wikidata
Create a mobile-friendly display for the contents of Wikidata.


 * Student: Pragun Bhutani
 * Mentors: Katie Filbert and Jon Robson
 * Status: A number of changes were made to the Wikibase extension to support this feature, but the project was not completed. Work to make Wikidata mobile-friendly is still ongoing.

Moodle extension
Create an extension to display information from the learning-management system Moodle.


 * Student: Rohan Verma
 * Mentors: Jan Luca Naumann and Brian Wolff
 * Status: The Moodle extension was created and partially completed; it is currently unmaintained.

Pronunciation Recording Tool
Create a user-friendly tool for uploading audio files showing the pronunciation of words, in Wiktionary.


 * Student: Rahul Maliakkal
 * Mentors: Michael Dale and Matt Flaschen
 * Status: The PronunciationRecording extension was created, which was only partially completed and is currently unmaintained. A demo of the tool was formerly viewable here.

Prototyping inline comments
Create a prototype for letting users add inline comments within wiki pages, to allow for discussions on the content, using the OKFN Annotator JavaScript library.


 * Student: Richa Jain
 * Mentors: Matthew Flaschen and Tyler Romeo
 * Status: The Annotator extension was created, which was at "unstable" status before becoming unmaintained.

Refactoring of ProofreadPage extension
Modify the ProofreadPage extension for general improvements, as well as to allow integration with the VisualEditor extension.


 * Student: Aarti Dwivedi
 * Mentors: Tpt and Zaran
 * Status: Extension was successfully modified. Several bugs were later found after a deployment to WMF sites, and fixed by Tpt; a testing suite for ProofreadPage would be helpful.

Section handling in Semantic Forms
Add the ability to edit/handle page sections to both the Semantic Forms and Page Schemas extensions.


 * Student: Himeshi De Silva
 * Mentor: Yaron Koren
 * Status: This capability was added to both extensions, and was released in version 2.6 of Semantic Forms and version 0.4 of Page Schemas.

UploadWizard: Book upload customization
Modify the Extension:UploadWizard extension to allow for uploading books, and book metadata, for use on Wikisource.


 * Student: Nazmul Chowdhury
 * Mentors: Mark Traceur and Micru
 * Status: No code was merged to UploadWizard, due in part to unresolved questions about the use of the TemplateData extension. Status and code can be found here.

VisualEditor Mathematical Equations Plugin
Create a plugin for the VisualEditor extension to allow for viewing and editing mathematical equations.


 * Student: Jiabao Wu
 * Mentors: Peter Krautzberger and Roan Kattouw
 * Status: Project was not completed.

VisualEditor plugin for source code editing (SyntaxHighlight GeSHi support)
Create a plugin for the VisualEditor extension to allow for editing source code, based on the formatting done by the SyntaxHighlight GeSHi extension.


 * Student: Tongbo Sui
 * Mentors: Trevor Parscal and James Forrester
 * Status: A new "syntaxhighlight" module was successfully added to the VisualEditor extension.

VisualEditor RTL support
Improve support in the VisualEditor extension for right-to-left languages.


 * Student: Moriel Schottlender
 * Mentors: Amir E. Aharoni and Inez Korczynski
 * Status: A large number of RTL-related bugs were fixed. A VisualEditor language selector/inspector was created. An RTL-capable TemplateData editor was created as both a gadget on the Hebrew Wikipedia and a patch to the TemplateData extension, which was merged a few months later. See here for more information.

Wikidata Entity Suggester
Allow for suggesting new properties, as well as values for properties, to editors on Wikidata.


 * Student: Nilesh Chakraborty
 * Mentors: Daniel Kinzler, Denny Vrandečić
 * Status: The WikidataEntitySuggester extension was created; it became unmaintained and has since been replaced by the PropertySuggester extension.

Wikidata language fallback and conversion
Add language fallback handling (in case data isn't available in the user's own language) to the Wikibase extension, for use on Wikidata.


 * Student: Liangent
 * Mentors: Denny Vrandečić and Katie Filbert
 * Outcome: A large number of changes were made to Wikibase and over 30 merged. The overall project was not completed at the time; it was finally completed in 2014.

ZIM incremental updates for Kiwix
Allow for incremental updates of Wikipedia's content, in ZIM format, to enable much faster transfer to the Kiwix offline reader.


 * Student: Kiran Mathew Koshy
 * Mentors: Emmanuel Engelhart and Tommi Mäkitalo
 * Status: Two scripts, zimdiff and zimpatch, were added to the OpenZIM code and are in use by Kiwix devs. Integration into Kiwix was not completed; see here for current status.

2012
Of about 41 applications that were worth considering; the following were accepted:

Convention Extension
Create an extension, ConventionExtension, to enable MediaWiki to serve as a conference management system.


 * Student: Akshay Chugh
 * Mentor: Jure Kajzer
 * Outcome: ConventionExtension was at "beta" status, then became unmaintained.

Green SMW
Make changes to the Semantic MediaWiki extension's storage and caching system to make it more efficient, and thus more "green".


 * Student: Nischay Nahata
 * Mentors: Jeroen De Dauw and Markus Krötzsch
 * Outcome: This project formed the basis of the new database structure for Semantic MediaWiki, SMWSQLStore3, which first appeared in SMW 1.8, released in December 2012. Nischay remains an active SMW contributor, and also does code review and bug fixing for the WMF.

Improvements to OpenStackManager
Upgrade the OpenStackManager extension to support the new OpenStack API.


 * Student: Suhas Rao
 * Mentor: Ryan Lane
 * Outcome: Project failed and did not produce any code.

Incubator improvements and language support
Improve the usability, performance and language coverage of the WikimediaIncubator extension, used on the site Wikimedia Incubator.


 * Student: Robin Pepermans
 * Mentor: Niklas Laxström
 * Outcome: Project was partly completed. Robin was already a MediaWiki contributor before the project (he is the author of WikimediaIncubator).

Integration of Flickr and Geolocation in Upload Wizard
Improve the UploadWizard extension in two ways: allow for easy transfer of images from the website Flickr, and allow users to select a coordinate location for photos using a clickable map interface.


 * Student: Ankur Anand
 * Mentor: Ryan Kaldari
 * Outcome: Code was created for the two new features, and put into two Git branches: flickr (which was merged into UploadWizard trunk and deployed), and geo (which was not merged).

Realtime collaboration on VisualEditor
Enable the VisualEditor extension to be used for realtime collaboration, where users' edits propagate immediately to other users' screens, in the manner of Etherpad and Google Docs.


 * Student: Ashish Dubey
 * Mentor: Trevor Parscal
 * Outcome: A basic version of this feature was created, which allows for a single editor to make changes, which other users can then see immediately. This functionality was not integrated into VisualEditor.

TranslateSvg
Original name: "TranslateSvg: Bringing the translation revolution to Wikimedia Commons". Create the TranslateSvg extension, which will allow users to translate the text within uploaded SVG files into different languages, via the wiki.


 * Student: Harry Burt
 * Mentor: Max Semenik (Niklas Laxström helped out unofficially)
 * Outcome: Extension was created but not completed.

Watchlist grouping and workflow improvements
Create a system for grouping pages, so that users can watch all the pages within a single group without having to add each one individually to their watchlist.


 * Student: Aaron Pramana
 * Mentor: Alex Emsenhuber
 * Outcome: Only the back end of the system was finished.

Wikimedia Commons mass upload tool
Original name: "Application for mass uploading files to Wikimedia Commons on upload campaigns". A desktop application for doing mass uploads of photos.


 * Student: Platonides
 * Mentor: Sumana Harihareswara
 * Outcome: Student did not have enough time, due to his other MediaWiki development-related work, and the project was not completed beyond a prototype.

2011
Approximately 24 serious proposals were submitted, out of which the following were accepted:

Archival for Web References/Citations
Facilitate the archival of external links used as references in the English Wikipedia, to prevent "link rot" for pages that go offline. This was implemented as the ArchiveLinks extension.


 * Student: Kevin Brown
 * Mentor: Neil Kandalgaonkar
 * Outcome: A working interface, and a protocol for feeding new links to partners like the Internet Archive, were created, but the extension was not completed. The ArchiveLinks extension was at "experimental" status, then abandoned. See here for more information.

Customization of Gadgets
Original name: "AMICUS: Awesome Monolithic Infrastructure for Customization of User Scripts". Allow gadgets, defined within the Gadgets extension, to be made customizable per wiki using settings variables.


 * Student: Salvatore Ingala
 * Mentors: Brion Vibber and Max Semenik
 * Outcome: Code remained in a separate branch, and was never merged into the Gadgets extension. See here for more information.

Extension Release Management
Implement an extension management platform for MediaWiki, based on the first half of the 2010 GSoC project "Extension management platform", i.e. the Distribution extension.


 * Student: Aigerim Karabekova
 * Mentors: Sam Reed, Priyanka Dhanda, and Chad Horohoe
 * Outcome: Cancelled due to student's personal problems, including health issues.

Improving Semantic MediaWiki search
Original title: "Improving Semantic Search/Semantic Query usability issues in SMW". Project to make the "Special:Ask" page in Semantic MediaWiki more user-friendly.


 * Student: Devayon Das
 * Mentor: Markus Krötzsch
 * Outcome: The code was created and added to Semantic MediaWiki as an optional feature that can be enabled by a configuration setting. Issues remained with the code, however, and the feature was later removed.

Offline article selection
Original title: "Making Offline Wikipedia Article Selection Easier with MediaWiki Extensions". Create an extension to allow export of Wikipedia articles into offline collections, meant to replace the WP 1.0 bot.


 * Student: Yuvi Panda
 * Mentor: Arthur Richards
 * Outcome: The SelectionSifter extension was created, but went unused and was abandoned. However, Yuvi Panda later worked as a contractor for the Wikimedia Foundation, working mostly on mobile development.

Page Schemas
Original title: "Semantic Schemas extension". Project to create the Page Schemas extension, to define data structure for wiki pages, mostly meant to be used with the Semantic MediaWiki extension.


 * Student: Ankit Garg
 * Mentor: Yaron Koren
 * Outcome: A preliminary version of Page Schemas was created successfully; it was later modified significantly by Yaron. The extension is currently in active use.

Signup API
Original name: "Account Creation, Login Screens and AJAX-ification of everything". Implement the Account creation proposal, which would allow for Ajax-based login. This was implemented as the SignupAPI extension.


 * Student: Akshay Agarwal
 * Mentor: Brandon Harris
 * Outcome: The SignupAPI extension was at "experimental" status, and was then abandoned. Some of Akshay's commits received code critique and required improvements (more information). The Editor Engagement team was at one point interested in reusing some of SignupAPI in a new project, though this did not occur.

SocialProfile extension – UserStatus feature
Add the ability for users to set their current status, and track each others' statuses, in the SocialProfile extension.


 * Student: Yevheniy Vlasenko
 * Mentor: Jack Phoenix
 * Outcome: Feature was added successfully, but was then removed in 2013.

2010
For the official list with links to the proposals, go here.

Extension management platform
"Creating an awesome extension management platform for MediaWiki, facilitating the installation, updating, removal and configuration of extensions."

See Deployment for overview - project resulted in two new extensions, Distribution and Deployment.


 * Student: Jeroen De Dauw
 * Mentor: Brion Vibber
 * Outcome: Extensions took longer than expected, and remained uncompleted at the end of the term. The WMF decided not to fund additional development on these extensions, but there is still interest within the WMF to get this functionality working.

Improve metadata support
Improve metadata support for uploaded media in MediaWiki by displaying embedded IPTC and XMP metadata.


 * Student: Brian Wolff
 * Mentor: Chad Horohoe
 * Outcome: Code was initially added to the img_metadata branch, and then merged into trunk in r86169, which became part of MediaWiki 1.18. Brian has continued to work actively on MediaWiki, on core and extensions.

Interwiki template transclusion
The aim is to allow MediaWiki users to insert (transclude) templates from one wiki to another on Wikimedia Foundation (WMF) wikis (Wikipedia, Wikimedia Commons, etc.). (See feature proposal.)


 * Student: Peter Potrowl
 * Mentor: Roan Kattouw
 * Outcome: Code was initially added to the iwtransclusion branch, and a prototype was created. Branch was merged into trunk in r95396 and then demerged. There was a plan to re-merge the code into trunk in March 2012, but this was abandoned in April 2012.

Javascript overhaul of Semantic MediaWiki
"Improve and extend the Javascript for Semantic MediaWiki and some of its spinoff extensions, most notably Semantic Forms - this would include transferring over much of the Javascript to use the jQuery library, which is now becoming a MediaWiki standard."


 * Student: Sanyam Goyal
 * Mentor: Yaron Koren
 * Outcome: Work was completed as specified, and five extensions (Semantic MediaWiki, Semantic Forms, Semantic Forms Inputs, Semantic Drilldown, Semantic Result Formats) had their Javascript improved, and modified to use jQuery where appropriate.

RDFIO
Project to create the RDFIO extension. (Original project name: "General RDF export/import in Semantic MediaWiki").


 * Student: Samuel Lampa
 * Mentor: Denny Vrandečić
 * Outcome: The RDFIO extension was in active use for around a year, then stopped being maintained in 2011, then became maintained again in 2012. It is currently at "beta" status.

Wikisource Legal Tool
Create a tool to format judicial decisions, legal scholarship, and statutes for Wikisource.


 * Student: Stephen Laporte
 * Mentor: Ariel Glenn
 * Outcome: Formatted U.S. Supreme Court opinions are being imported to Wikisource by BenchBot. Stephen Laporte currently works for the Wikimedia Foundation as a lawyer.

2009
For the official list with links to the proposals, go here.

Maps and Semantic Maps
Project to create the Maps and Semantic Maps extensions (original project name: "Semantic Layers Extension").


 * Student: Jeroen De Dauw
 * Mentor: Yaron Koren
 * Outcome: The two extensions are in use on over 100 sites each (see here and here), and are still under active development. Jeroen is still very active in the community, and has been a contractor for the Wikimedia Foundation and Wikimedia Deutschland.

MwEmbed
"Doog - The New Cortado Applet" - improvements to MwEmbed.


 * Student: Gerardo Cabero
 * Mentor: Michael Dale
 * Outcome: Applet was not successfully implemented.

Translation
"Turning MediaWiki into an efficient localization platform" - improvements to the Translate extension.

See Nikerabbit's GSoC 2009 wrapup blog post.


 * Student: Niklas Laxström (Nikerabbit)
 * Mentor: Siebrand Mazeland
 * Outcome: In active use on translatewiki.net and dozens other wikis. Niklas Laxström was active in the community before and after this project, and currently works for the Wikimedia Foundation.

Image rendering daemon
Was written in Python and designed to handle asynchronous image rendering requests.
 * "This is a proposal to fix the MediaWiki bug #4854, implementing a daemon program to render and resize images uploaded by Wikipedia users. Separating the image manipulating work from the MediaWiki application will greatly alleviate application server's load, thus improve the overall performance. The API will be designed as general as possible to accommodate the needs of other applications that also render and resize images in large quantity."


 * Student: Zhe Wu
 * Mentor: Aryeh Gregor (Simetrical)
 * Notes: Proposal was very well written, programmer obviously knew what he was doing. Major issues:
 * Was being developed on another repository. Should have been in SVN with everything else.
 * Mentored by an accomplished developer, but someone who had little interest in the subject matter
 * While the proposal was very well written, it wasn't developed with Wikimedia operations in mind. Their wants/needs should've been solicited and probably consulted during the process as well.


 * Outcome: Final status email. Since it was developed off-site, it never really received much input. It appears that none of the code was ever looked at by anyone in operations for potential deployment on WMF.

WebDAV
"I am working on an extension which provides a WebDAV / DeltaV / Subversion interface to MediaWiki articles: WebDAV"

"The extension enables articles to be browsed and edited with WebDAV or Subversion clients. When complete, it will support editing articles offline, using for example the Subclipse Eclipse IDE plugin or Emacs VC mode."


 * Student: Jack Bates
 * Mentor: ?
 * Outcome: WebDAV extension exists, but appears to be unusable.

Visual Diff
Visual diffs/2008 project - A system to provide more visually intuitive diffs, rather than lines added/removed.


 * Student: Guy Van den Broeck
 * Mentor: Brion Vibber
 * Notes: Brion was always busy, so Guy asked a lot of questions in #mediawiki.
 * Outcome: Had lots of outstanding issues - i18n, style, etc. Was a part of two releases, 1.14 and 1.15, in which it was disabled by default. Removed from trunk in r58267, and was not in 1.16 or subsequent releases. The code was used, however, as the basis for htmldiff, a non-MediaWiki PHP library that displays diffs of HTML snippets.

Special mention should also be made of another MediaWiki-related project done in 2008, but by Creative Commons and not the Wikimedia Foundation: a project to add RDFa support to Semantic MediaWiki. David McCabe was the student and Nathan Kinkade was the mentor. The code created is no longer in use.

Audio/video file recoding
The proposal: "Audio and video can instruct and inform in ways unattainable by words and still images. Currently, audio and video have only limited support and are often cumbersome to access in MediaWiki and the various projects of the Wikimedia Foundation. This project seeks to allow Wikimedia's sites to more effectively leverage the power of audio and video resources. To achieve this, a reliable and expandable system is proposed to automatically recode contributions from numerous digital a/v formats to a single, royalty and patent free compression standard. With the ability to generate such a library, Wikimedia would be poised to easily present a vast range of audio and video to their visitors using an in-browser streaming player."

Project blog: http://mikeswikidev.wordpress.com/


 * Student: Mike Baynton
 * Mentor: Brion Vibber
 * Outcome: Code appears to have been unused by the WMF.

LiquidThreads
"Add support for structured discussion pages. Option for discussion pages to be more like message boards with threads.  Current discussion format is less than ideal (can modify others' comments, cluttered editing window, etc).  This could also include support for embedding polls in discussion pages, voting on proposals, etc.  Basically, create a minimal message board system that is tailored for use in a wiki environment (see LiquidThreads [this is a link to the page as it existed then] for some ideas in that direction)."


 * Student: David McCabe
 * Mentor: Erik Möller (?)
 * Notes: This project created the LiquidThreads extension, which had previously been only a proposal written by Erik Möller and others. David was later temporarily re-hired by the WMF in 2008 to maintain and improve the extension. See also David's GSoC project blog.


 * Outcome: Andrew Garrett, working on contract from the Foundation, spent several months in 2010 overhauling LiquidThreads entirely; almost none of the old code was kept. A project to overhaul it again was begun in 2011. Still, this could be considered a successful project: it worked, and it developed some concrete ideas that were later expanded upon in the overhaul.

Video display
No-install, in-browser display of video (and audio?) clips for Wikimedia Commons, using reasonably common Java and/or Flash components. Needs to be able to 1) play or transparently pre-convert Ogg Theora videos, 2) avoid use of patent-encumbered formats. Consider integration of Fluendo's Cortado player applet as a starting point.

Brion's talk suggested that this project would also involve creating thumbnails for video clips.


 * Student: Michael Dale
 * Mentor: Brion Vibber
 * Outcome: Michael Dale went on to work on other MediaWiki video efforts (metavid, which eventually turned into mwEmbed and finally into TimedMediaHandler, which is in testing and review before WMF deployment). Tim Starling did the final integration of the Cortado applet and Ogg parsing as part of the OggHandler extension, which currently supports video functionality on Wikimedia Commons. Michael Dale came back to work with the Foundation in late 2008 on a few different projects with support from Kaltura, mentored a student in 2009, and is still active in developing Wikimedia technologies.