Google Summer of Code/2023

Wikimedia will be taking part as a mentoring organization for Google Summer of Code 2023.

GSoC logo

Program timeline edit

See full timeline

GSoC and Outreachy Midterm Meet Group Photo, July 2023
Google Summer of Code Mentor Summit 2023

February 7, 18:00 UTC Mentoring organization application deadline
February 22, 18:00 UTC List of accepted mentoring organizations published
March 20, 18:00 UTC GSoC contributor application period begins
April 4, 18:00 UTC GSoC contributor application deadline
May 4, 18:00 UTC Accepted GSoC contributor projects announced
May 4–28 Community Bonding Period
May 29–August 28 Coding period
September 5 Initial results of Google Summer of Code 2023 announced
September 4–November 6 GSoC contributors with extended timelines continue coding
November 13, 18:00 UTC Final date for mentors to submit evaluations for GSoC contributor projects with extended deadlines

Accepted projects edit

Name Location Project Mentor(s) Updates
Ahmed Amine Hassou Morocco Wiki Education Dashboard: Refactoring and upgrading React Sage Ross, Will Kent
Chenhao Liu United States of America Wiki farm support for Canasta Yaron Koren, Jeffrey Wang
Nikhil Mahajan India End-to-end test coverage for Abstract Wikipedia's Wikifunctions Stef Dunlap, James Forrester, Cory Massaro, Denny Vrandečić
Zexi Gong China Wikidocumentaries to import images from the web to Structured Data on Commons TuukkaH, Susannaanas
Shashwat Khanna India Improve Programs & Events Dashboard UX for Article Scoped Programs Sage Ross
Saurabh Jamadagni India Adding a menu to Scribe-iOS application and expanding keyboard languages Andrew McAllister
Ritika Pahwa India Commons Android app: Make upload more reliable Nicolas Raoul, Kaartic Sivaraam
Punith Nayak India Improve the functionality of VideoCutTool - New features Gopa Vasanth, Sohom Datta Report 1

Report 2

Report 3

Varun Shrivastava India Improve the functionality of VideoCutTool - Code Quality/Code Health Gopa Vasanth, Sohom Datta Report 1

Report 2

Report 3

Report 4

Ideas for projects edit

Watch this space for project ideas! We will keep adding ideas below between now and when the application period opens.

  Warning: Application Period Ended! See accepted participants list above.

1. Commons Android app: Make upload more reliable edit

Commons Android app

Built with Java and Kotlin, this Android app allows contributors to upload pictures they have taken with their phone/tablet to Wikimedia Commons. Unfortunately, upload often fails, gets stuck, or loses location metadata. The goal of this project is to fix these 3 bugs. Our friendly team mostly uses GitHub and chat for code collaboration.

2. Improve the functionality of VideoCutTool [Done] edit

VideoCutTool is a tool to edit videos in Wikimedia Commons. It's widely used by the volunteers to edit videos on the fly and re-upload back to Commons in simple few clicks instead of downloading video from Commons and using external software applications to edit and re-upload. The goal of this project is to improve the tool, fix some existing bugs, add additional functionality and write the unit tests.

3. Adding a Menu and Keyboards to Scribe-iOS edit

Scribe makes Wikidata powered keyboards that help language learners remember grammar points as they type :) For GSoC we'd like to work with one or more mentees to improve the base app experience and add keyboards so that more people can make use of Scribe. These tasks will add skills with Wikidata Query Service, Swift and Python.

4. End-to-end test coverage for Abstract Wikipedia's Wikifuntions edit

Abstract Wikipedia is an idea that people can create and maintain Wikipedia articles in a language-independent way. A particular language Wikipedia can translate this language-independent article into its language. Code does the translation. This code will be run on Wikifunctions.

Wikifunctions is a new Wikimedia project that allows anyone to create and maintain code. This is useful in many different ways. It provides a catalog of all kinds of functions that anyone can call, write, maintain, and use.

When Wikifunctions launches, the team wants the core features to be covered by end-to-end test that can be run against any patch review. We are leveraging existing selenium tools and patterns to write the tests, and a novel GitLab Kubernetes based CI pattern that integrates with Gerrit (MediaWiki's legacy git version control server).

The aim of this GSoC project will be to write e2e (end-to-end) tests using Selenium and integrate them into the Wikifunction pipeline. A stretch goal of this project working on "production-izing" pipeline itself, and documenting the pattern for other teams to evaluate and implement.

5. Improve Programs & Events Dashboard UX for Article Scoped Programs edit

Programs & Events Dashboard has a powerful set of features for defining the scope of articles that you want to track edits to, which are enabled by selecting the 'Article Scoped Program' event type. However, these features are not very intuitive or discoverable. The goal of this project is to improve the event creation user experience so that event organizers can more easily configure the Dashboard to track only the articles they want to track, using whichever of the available scoping methods (assignments, categories, templates, PetScan, and/or PagePile) is most appropriate for their program.

The user interface should explicitly note the methods for scoping a course at the point of choosing the program type, it should guide users who have created an ArticleScopedProgram that doesn't have any in-scope articles yet on how to set up the desired scoping, and it should make the current scoping settings more obvious (eg, as part of the Home tab) when viewing such a program.

The event creation UI is primarily done via a client-side frontend built with React.js. Advice for prospective interns working on the Dashboard.

  • Tech stack: Web design / prototyping, React.js, Familiarity with Ruby is helpful but not required, Familiarity with wikis and/or Wikidata helpful but not required, Experience with or interest in user research helpful but not required
  • Mentor(s): Sage Ross
  • Relevant links: Phabricator issue

6. Wikidocumentaries to import images from the web to Structured Data on Commons edit

Wikidocumentaries is a website aggregating Wikimedia content and integrating it with content from other open media repositories. It provides a language-independent way of browsing Wikimedia projects based on Wikidata items. The idea of Wikidocumentaries is to allow the users to find relevant open content and contribute it to the Wikimedia projects by using the content for their purposes. The name of the project, Wikidocumentaries, refers to media compilations that the project will eventually allow the users to create from the materials they find.

The goal of the GSoC project is to establish the entire process for retrieving media from a given media repository related to the currently viewed topic in Wikidocumentaries and uploading it to Wikimedia Commons, adding structured data statements to it.

  • Create or update the API script for the desired media repository.
  • Format the retrieved information so that it can be displayed in Wikidocumentaries.
  • Allow the user to select images they want to upload.
  • Authenticate with Wikimedia Commons.
  • Upload the chosen media files and categorize them using available information.
  • Make Structured Data statements using information from both the corresponding Wikidata item and the original source.

When this workflow has been completed, it will be possible to make available further tools to enrich the data of the uploaded content. It is possible to expand the work to some such tool, based on the interests of the intern.

7. Wiki farm support for Canasta edit

Canasta is a Docker-based MediaWiki distribution that makes it easy to set up a full-featured MediaWiki instance on just about any server. However, one big feature it lacks is the ability to support running multiple wikis, i.e. a wiki family or wiki farm, within the same container. Such wikis would be differentiated by either a different directory (e.g.,, a different subdomain (e.g.,, or even different domains for each wiki (, Additionally, the Canasta command-line interface (CLI) should support the wiki farm setup as well, letting administrators easily create, configure, delete, etc. the individual wikis.

If you are interested in applying to become a contributor to this project, please read the following on GitHub: The Canasta Project's GSoC 2023 application instructions

Recommended steps for accepted candidates edit

See Google_Summer_of_Code/Participants#Accepted_participants

Contact edit

We encourage applicants to communicate in the public streams and refrain from sending private emails/messages whenever possible. Open communication allows fellow applicants to learn from your questions. It also gives all community members a chance to answer your queries. This way, queries get answered sooner and the administrators do not become a bottleneck. Also see our communication tips.