Google Summer of Code/2019

Wikimedia is applying as a mentoring organization for Google Summer of Code 2019. Learn application process steps, selection process and responsibilities of a mentor below:

Read information for participants Read information for mentors

Program timeline
Click here to view full timeline


 * February 6 20:00 UTC - Mentoring organization applications due
 * March 25 18:00 UTC - Student application period begins
 * April 9 18:00 UTC - Student applications due
 * May 6 18:00 UTC - Accepted students announced
 * May 27 - August 26 - Coding period

Ideas for projects
Watch this space for project ideas! We will add more ideas below between now and when the application period opens.

If the projects listed below are not a good fit with your interests, skills, and background, check out the Outreach Programs Projects workboard on Phabricator and express your interest in contributing to a project by commenting on the corresponding task.

Improve the interface of Special:ViewData in the Cargo extension
Extension:Cargo defines a page, Special:ViewData, that serves two purposes: a) display additional query results when a user clicks on "More results" from within a main set of query results and b) provide a user interface to run any Cargo query. The interface of the page could be improved to support text input with auto-completion, validation, format-based inputs, etc. It could be helpful to look at existing interfaces that do similar things like those of phpMyAdmin or the Semantic MediaWiki Special:Ask page for inspiration.

Skills required Knowledge of PHP, JavaScript, and Ajax and interest in interface design

More details https://phabricator.wikimedia.org/T213513

Mentors Yaron Koren

Add an editable calendar interface to Page Forms extension
This project is about adding an interface to Extension:Page Forms that allows creating and editing pages from a calendar interface. This interface would most likely use the FullCalendar JavaScript library. This interface may require the presence of the Cargo extension, or at least would have more features if Cargo is installed.

Skills required Knowledge of PHP, JavaScript, and Ajax

More details https://phabricator.wikimedia.org/T213759

Mentors Yaron Koren, Erik Biegert

Develop code samples in Javascript and PHP to demonstrate the use of MediaWiki Action API modules
This project is about developing sample code in two or more programming languages (e.g., Javascript and PHP) to demonstrate the use of MediaWiki Action API modules. Here is what this entails:


 * Design and embed a tabbed window on the API pages (like on the right here), possibly via a template or Gadget.
 * Generate code samples for modules that received documentation improvements in Phase 1 and Phase 2: Phab:T198916
 * Write a code generator (output files in Javascript or PHP) for modules supporting GET requests like here
 * Write sample code for API modules for which code generator may not work


 * Document the code samples on-wiki
 * (OPTIONAL) Develop one or two demo apps around the use of Action APIs

Skills required Basic PHP and/or Javascript programming

More details https://phabricator.wikimedia.org/T215681

Mentors Srishti Sethi, Sarah Rodlund

Develop a tool for use by Wikimedia event organizers to track developer activity
Wikimedia uses Bitergia's analytics tool for the technical community metrics. This tool provides useful information and is convenient for community managers who are familiar with its every know-how. However, this tool is cumbersome to use for others (e.g., sponsorship committee reviewers, event organizers, etc.) as it requires too many steps to obtain statistics for a topic and there is a bit of learning curve to get comfortable with the tool. AWMD stats tool generates monthly statistics of technical contributors to Wikimedia projects from Africa. Seeking inspiration from this tool, the goal of this project is to design and develop a proof of concept that demonstrates what an extended version of AWMD tool for use by others in the Wikimedia movement would look like.

Skills required Familiarity with Python and Web APIs

More details https://phabricator.wikimedia.org/T202233

Mentors Srishti Sethi, Derick Alangi, Suchakra Sharma

Make improvements to ProofreadPage Extension and Wikisource
This project is about making improvements to the Proofread Page extension. Feature requests to be addressed as part of these improvements are detailed in the tasks on Phabricator:


 * T67231: Search on Special:IndexPages with OR and incategory does not work
 * T128298: Lists on Special:IndexPages on Wikisource are incomplete
 * T146160: Migrate ProofreadPage zoom feature to OOJS
 * T161455: Implementing page transclusion into the VisualEditor
 * T161456: Use Commons (individual files?) as a source for building DjVu files

Skills required Familiarity with PHP and Javascript

More details https://phabricator.wikimedia.org/T200871

Mentors TBA

Implement support for Flagged Revisions in Pywikibot
MediaWiki extension FlaggedRevs metadata is not available in Pywikibot. It would be useful to identify the edition of a Page which has been reviewed, and if a Page has any stable edition. This project will involve working closely with one Wiki community that has FlaggedRevs implemented, to ensure Pywikibot works correctly on that wiki.

Skills required Javascript, HTML, PHP, Python

More details https://phabricator.wikimedia.org/T57081

Mentors Gergő Tisza, John Vandenberg

Signed statements for Wikidata
Wikidata is Wikimedia's knowledge base. It holds data about all kinds of concepts in the world. Some of this data is donated by large institutions. It is then referenced to that institution. Since anyone can edit the data on Wikidata the data might be changed to something completely different from what the reference says. We'd like to give institutions the option to cryptographically sign the data they contribute. This will help keep the data quality in Wikidata high and the data useful as Wikidata grows.

Skills required Knowledge of Javascript, PHP and PGP required

More details http://phabricator.wikimedia.org/T138708

Mentors Amir Sarabadani, Lydia Pintscher

[Education Dashboard] Create an Android app that acts as an alternative frontend for the WikiEducation Dashboard
The Wiki Education Programs & Events Dashboard is a Ruby on Rails + React.js application that helps people organize groups of newcomers to contribute to Wikipedia. It's used by the global Wikipedia Education Program for Wikipedia writing assignments in college and high school classes, the Art + Feminism editathon campaign, and many other thematic in-person and online outreach projects. This project is about creating an android app to act as an alternative frontend for the WikiEducation dashboard utilising the existing Ruby on Rails API, increasing the ease of access for the users.

Skill Required Knowledge of Java, Android and Ruby

More Details https://phabricator.wikimedia.org/T216179

Mentors Sage Ross

[Education Dashboard] Improve the Dashboard's capabilities for tracking the right set of edits for multi-wiki contributions
The Wiki Education Programs & Events Dashboard is a Ruby on Rails + React.js application that helps people organize groups of newcomers to contribute to Wikipedia. It's used by the global Wikipedia Education Program for Wikipedia writing assignments in college and high school classes, the Art + Feminism editathon campaign, and many other thematic in-person and online outreach projects. This project would revolve around improving the multi-wiki tracking for the dashboard, tracking just the right set of articles. The selected candidate would work on adding a clear UI and data model for multi-wiki contributions, also allowing to mark edited articles not to be tracked.

Skill Required Knowledge of React, Ruby and Ruby on Rails

More Details https://phabricator.wikimedia.org/T216181

Mentors Sage Ross

Create a subpage for statistics and charts related to a hashtag search
The Hashtags tool allows users to search for uses of hashtags (e.g. #1Lib1Ref) in Wikimedia edit summaries. Its current functionality is quite basic - a few simple search options and listed results, with the option to download the results as a CSV or read them as JSON. A number of Wikimedia campaigns use this tool to track edits and would like to be able to delve into the data a little more. We would therefore like to add a page users can click through to for a given search showing more detailed statistics, graphs, and charts.

Skill Required Familiarity with Python, Django and HTML/CSS.

More Details https://phabricator.wikimedia.org/T186706

Mentors Sam Walton, TBA

Add Structured Commons support to Commons Android app
The Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons. Commons is not only the image repository for Wikipedia, but an independent project that seeks to document the world with photos, videos and recordings.

Structured Commons is really important for us because it allows our app to be truly multilingual.

Skill Required Android SDK, Android UI design, understanding of RxJava, basic knowledge of Wikimedia APIs and familiarity with Kotlin

More Details https://phabricator.wikimedia.org/T217265

Mentors Nicolas Raoul, Vivek Maskara

Improve the article recommendation API
Article recommendation API suggests missing articles for creation. For example, here you can see that articles similar to 'Book' and identified by Wikidata item IDs are missing from enwiki and thus are being suggested for creation. These recommendations are useful for editors who either want to create articles from scratch or by translating existing articles. This project is about improving the data import pipeline.

Skills Required: MySQL, Python

More Details: https://phabricator.wikimedia.org/T211980

Mentors Bahodir Mansurov

Contact

 * Reach out for general questions on the #gsoc19-outreachy18 Zulip chat or send an email to the organization administrators: Srishti Sethi (ssethi@wikimedia.org), Pratyush Singhal (psinghal20@gmail.com) and Derick Alangi (alangi.derick@wikipedia.de).
 * Ask a technical question on the Wikimedia Developer Support channel.