Google Summer of Code/2024


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

GSoC logo


Program timeline

edit
Google Summer of Code 2024's timeline
Date Action by Item
Prep February 6, 18:00 UTC WMF Mentoring organization application deadline
February 21, 18:00 UTC Google Inc. List of accepted mentoring organizations published
Application March 18, 18:00 UTC Applicants GSoC projects application period begins, two mentors required.
April 2, 18:00 UTC Applicants GSoC projects application deadline
May 1, 18:00 UTC Google Inc. GSoC projects being accepted are announced
May 1 - 26 Contributors GSoC contributors get to know mentors, read documentation, get up to speed to begin working on their projects
Internships May 27 – August 26 Contributors Coding period – first half
July 8 – 12 Contributors & Mentors Midterm Evaluation period
August 19 – 26 Contributors Final Report Submission period
August 26 – September 2 Mentors Final Evaluation period for all 12 week projects
September 3 Google Inc. Initial results of Google Summer of Code 2024 announced
Extension September 3 – November 4 Contributors GSoC contributors with extended timelines continue coding
October 28 – November 1 Contributors Final Evaluation period for 22 week projects
November 11 Mentors Final date for mentors to submit evaluations for GSoC contributor projects with extended deadlines
November 14 Google Inc. All projects completed: end of 2024 program
Legend: 1) Applicants = Wikimedia mentors and/or GSoC contributors ; 2) Contributors = interns, junior developers. 3) Green background : ongoing phase.
edit

Accepted projects

edit
Intern Name (+ Pronouns) Location Project Mentor(s) Weekly Updates Blogs
Angel Sharma Mathura, India Improve searchability and filtering of PageTriage feed
  • Project Timeline: 22 weeks
Mid-term report
Marcel Mehl Germany Scribe-iOS: Add multilingual translation and internationalized interfaces
  • Project Timeline: 12 weeks
Jayanth Vikash Saminathan Tamil Nadu, India Improve InlineComments extension
  • Project Timeline: 12 weeks
Kabir Singh Delhi, India Lingua Libre SignIt extension
  • Project Timeline: 12 weeks
Kanahia Kaushal Patna, Bihar, India Commons app: Improve upload queue management
  • Project Timeline: 12 weeks
Mahfuza Humayra Mohona Bangladesh Scribe-Data: Refactor into a Multi-Purpose Wikidata Language Pack CLI Tool
  • Project Timeline: 12 weeks
Om Chauhan India Improve the training module creation and update process [Programs & Events Dashboard
  • Project Timeline: 12 weeks
Final report
Pranjal Rajput India Programs & Events Dashboard Improve system for copying courses from one Dashboard to another
  • Project Timeline: 12 weeks
Pushkar Bansal India Lingua Libre v3.0 enhancement and migration
  • Project Timeline: 12 weeks

Ideas for projects

edit

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

1. Commons app: Improve upload queue management

edit

The Commons app is an open source Android app that allows anyone to upload pictures to Wikimedia Commons (the image repository used by Wikipedia, Wikinews and other projects). The goal of this GSoC is to improve upload queue management, and modernize the app:

  1. Improve upload queue management
  2. Modernize the app by replacing Kotlin Android Extensions and Butterknife with ViewBinding: https://github.com/commons-app/apps-android-commons/issues/4664
  3. Improve the "Nearby" feature.

2. [Programs & Events Dashboard] Improve the training module creation and update process

edit

The training modules on Programs & Events Dashboard - https://outreachdashboard.wmflabs.org/training - can be created, edited and translated by users. Each piece of training content is based on a corresponding page on meta.wikimedia.org.

However, creating new modules is tedious, involving the creation of .json pages to define a new Library or Module, and a set of required formatting conventions for individual training slides. It would be nice to switch to a simpler and more user-friendly way of creating and editing training content, perhaps by removing the need for .json pages and allows the configuration of Libraries and Modules to be done from the Dashboard itself.

  • Tech stack: Ruby (required), JavaScript and React (helpful)
  • Size: Large (350 hours)
  • Difficulty: Hard (This project involves one of the more complex subsystems of the Dashboard, in which the Dashboard database gets data drawn from a set of structured wiki pages (currently), and some of that system will need to be rewritten to be updated via a UI within the Dashboard.)
  • Mentor(s): Sage Ross
  • Phabricator task: T356572

3. Improve InlineComments extension

edit
This project idea has quite a few strong proposals from folks so you may want to look at another project idea.

InlineComments is a relatively new MediaWiki extension that provides a long-missing feature for MediaWiki: the ability to do inline annotation on pages, in the manner of Google Docs, Confluence and other content-management systems. This extension already works fairly well, but it could use some improvements that would take it to the next level:

  • Add user mentions, i.e. selecting a user or users to "ping" about the current discussion by typing "@" and then selecting a username from the dropdown (phab:T355942)
  • Make sidebar creation more skin-neutral - currently, the "sidebar" in which comments are displayed is created on somewhat of a skin-by-skin basis; it would be good to have the code handle all skins in a standard way, via CSS and/or JavaScript (phab:T355948)
  • Add correct display of username and date/time of posting, on comment creation - currently, these are only displayed correctly for comments created before the page was loaded (phab:T355943)

There are other improvements that could be made to the extension, although mostly they are smaller; one is even listed as a microtask. However, it is possible that more potential improvements could be suggested during the project, by either the mentors or the student.

  • Tech stack: JavaScript (ideally including jQuery), PHP, CSS
  • Size: 175 hours
  • Difficulty: Intermediate
  • Mentor(s): Yaron Koren, Brian Wolff
  • Phabricator task: T356436

4. [Programs & Events Dashboard] Improve system for copying courses from one Dashboard to another

edit

There are two production instances of the WikiEduDashboard software: Programs & Events Dashboard (https://outreachdashboard.wmflabs.org/) and Wiki Education Dashboard (https://dashboard.wikiedu.org/). The system includes a tool to copy a course page from one Dashboard to the other, but the copied content is incomplete. If a course with Timeline content is copied, the Timeline content is not included, making it difficult to re-use assignment plans from Wiki Education Dashboard on Programs & Events Dashboard. In this project, you will improve the course copying feature so that useful Timelines and other content can more easily be transferred across servers.

  • Tech stack: JavaScript & React, Ruby
  • Size: 350 hours
  • Difficulty: Intermediate (This is a moderately complex feature with frontend and backend components, but it touches a limited and well-defined portion of the codebase with code that is all in our control.)
  • Mentor(s): Sage Ross
  • Phabricator task: T356573

5. Improve searchability and filtering of PageTriage feed

edit

PageTriage is an MediaWiki extension that allows patrollers on the English Wikipedia to track, categorize and deal with problematic new pages. One of it's features is the VueJS based New pages feed which allows patrollers to filter specific interesting pages they might want to patrol based on certain criteria. However, these filters are often limited and there has been some interest amongst the community to introduce newer filters and in general improve the ability to search for specific content on the New pages feed.

As part of this project, we would like to enhance the filtering and searching capabilities of the New pages feed. Particularly, we would like to add AI based topic prediction (leveraging the ORES API), the ability to search for a specific keyword in a article, filter by how many pageviews a article gets and be able to search by how similar a particular page is to other deleted pages. While other ideas are also welcomed, they might need to be reviewed by community members before being implemented.

  • Tech stack: VueJS, some familiarity with PHP
  • Size: 350 hours
  • Difficulty: Intermediate
  • Mentor(s): Sohom Datta, Sammy
  • Phabricator task: T357337

6. Scribe-Data: Refactor into a multi purpose Wikidata language pack CLI tool

edit

This is one of two projects for Google Summer of Code 2024 for the Scribe organization that makes keyboard applications for second language learners using Wikidata and other Wikimedia projects as a basis for the data. The goal of Scribe is to provide everything that a user needs to help them with their second language in any app without them needing to leave their keyboard to look up grammar or other needed information. One focuses on Scribe-iOS (phab:T358063), and the other on Scribe-Data (phab:T358064).

We are a Wikimedia Project for New Developers and would love to work with you!

  • Tech stack: Python, SPARQL query language, maybe Docker
  • Prerequisites: prior experience with Python and data analytics is a plus
  • Size: 350 hours
  • Difficulty: Intermediate
  • Mentor(s): Will Yoshida (Primary), Andrew McAllister (Secondary), Henrik Thomasson (Tertiary)
  • Phabricator task: T358064

7. Scribe-iOS: Add multilingual translation and internationalized interfaces

edit

This is one of two projects for Google Summer of Code 2024 for the Scribe organization that makes keyboard applications for second language learners using Wikidata and other Wikimedia projects as a basis for the data. The goal of Scribe is to provide everything that a user needs to help them with their second language in any app without them needing to leave their keyboard to look up grammar or other needed information. One focuses on Scribe-iOS (phab:T358063), and the other on Scribe-Data (phab:T358064).

We are a Wikimedia Project for New Developers and would love to work with you!

  • Tech stack: Swift, maybe Python, maybe SPARQL query language
  • Prerequisites: the intern needs to develop on Mac as they need access to Xcode, prior Swift experience is a plus
  • Size: 350 hours
  • Difficulty: Intermediate
  • Mentor(s): Andrew McAllister (Primary), Henrik Thomasson (Secondary), Will Yoshida (Tertiary)
  • Phabricator task: T358063

8. Lingua Libre SignIt

edit
 
Screenshot.

Lingua Libre's mission has been extended to Sign Languages in 2019. Both a click-and-translate Firefox extension and a video recording studio have been developed. Both system UI exist in 35+ languages allowing the global documentation and learning of various sign languages. As Manisfest v2.0 extensions are being phased out, the project is under threat. A full revamp into manifest v3.0 and a modern extension structure would allow the project to be compatible with all web navigators. This project must navigate updated in browser web extension security constrains and new web extension API.


9. Lingua Libre Django migration

edit
 
Lingua Libre v.2.0, Homepage

In the field of Language diversity, Wikimedia Foundation and Wikimedia France have supported LinguaLibre.org, a single page VueJS application to rapidly record vocabularies of the world. Over 240 languages and 1.2 millions words have been audio recorded into Wikimedia sites through this open project. Current back end (wikibase, PHP, blazegraph) while interesting have shown limitations, mostly limited query speed, no API, stack opacity and duplication of data. A revamp have been engaged (here) but requires further full stack work to be migrated into a maintainable code base, upgraded into an elegant service and pushed into production for willful native speakers.

 
Lingua Libre v.2.0, Recording Studio


Not accepted project

edit

Wikimedia Portals codebase modernization

edit

Help modernize the code that generates www.wikipedia.org. This codebase was originally written in 2015 and now many of it's NPM dependencies have become outdated. This project will involve cleaning up, refactoring, adding tests and removing unnecessary dependencies for one of the most viewed pages on the internet.


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.