Google Summer of Code/2024
Wikimedia will be taking part as a mentoring organization for Google Summer of Code 2024.
![GSoC logo](http://upload.wikimedia.org/wikipedia/commons/thumb/0/08/GSoC_logo.svg/200px-GSoC_logo.svg.png)
Program timeline
editGoogle Summer of Code 2024's timeline | ||
---|---|---|
Date | Action by | Item |
February 6, 18:00 UTC | WMF | Mentoring organization application deadline |
February 21, 18:00 UTC | Google Inc. | List of accepted mentoring organizations published |
March 18, 18:00 UTC | Applicants | GSoC contributor application period begins |
April 2, 18:00 UTC | Applicants | GSoC contributor application deadline |
May 1, 18:00 UTC | Google Inc. | Accepted GSoC contributor projects announced |
May 1 - 26 | Contributors | GSoC contributors get to know mentors, read documentation, get up to speed to begin working on their projects |
May 27 – August 26 | Contributors | Coding period – first half |
July 8 – 12 | Contributors & Mentors | Midterm Evaluation period for all 9 projects |
August 19 – 26 | Contributors | Final Report Submission period for all 9 projects |
August 26 – September 2 | Mentors | Final Evaluation period for all 9 projects |
September 3 | Google Inc. | Initial results of Google Summer of Code 2024 announced |
September 3 – November 4 | Contributors | GSoC contributors with extended timelines continue coding |
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 |
Applicants = Wikimedia mentors and GSoC contributors.
Gallery
edit-
Outreachy and GSoC Welcome Session (online) - June 5, 2024
-
Final group picture of our Outreachy Round 28 interns and Google Summer of Code (GSoC) contributors 2024, August 2024
Accepted projects
editIdeas for projects
editWatch 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
editThe 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:
- Improve upload queue management
- Modernize the app by replacing Kotlin Android Extensions and Butterknife with ViewBinding: https://github.com/commons-app/apps-android-commons/issues/4664
- Improve the "Nearby" feature.
- Tech stack: Java or Kotlin, Android Development
- Size: 350 Hours
- Difficulty: Intermediate
- Mentor(s): Nicolas Raoul, Ritika Pahwa
- Phabricator task: T356237
2. [Programs & Events Dashboard] Improve the training module creation and update process
editThe 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
editInlineComments 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
editThere 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
editPageTriage 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
editThis 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
editThis 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
editLingua 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.
- Tech stack: JS, NodeJS, potentially modern frameworks (Vue, React, Svelte)
- Size: 175 hours
- Difficulty: Intermediate
- Mentor(s): Yug, Ishan Saini
- Intern: Kabir T361550
- Phabricator task: T359799
- Relevant links: Repository, Issues, Lingua Libre SignIt, Firefox extension
-
« bibliothèque »
-
« merci »
-
« crabe »
9. Lingua Libre v3.0 enhancement and migration
editIn 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, blazegraph) while interesting have shown limitations, mostly limited query speed, no API, and duplication of data. A revamp have been engaged (here) but requires further full stack work to be expanded into a maintainable code base, pushed into production, upgraded into an elegant service for native speakers.
- Tech stack: VueJS, Django (Python), NodeJS
- Size: 350 hours
- Difficulty: Intermediate
- Mentor(s): Yug, Poslovitch
- Intern: Pushkar T361440
- Phabricator task: T359797
- Relevant links: Repository (demo), Phabricator dashboard, Lingua Libre
(not accepted project) 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.
* Tech stack: JS, Node.js, Gulp.js, Jest.js
* Size: 150 hours
* Difficulty: Easy to intermediate
* Mentor(s): Jan Drewniak (WMF), Bernard Wang (WMF)
* Phabricator task: T358885
* Relevant links: Wikimedia Portals workboard, Repository
Recommended steps for accepted candidates
editSee Google_Summer_of_Code/Participants#Accepted_participants
Contact
edit- Support forum: #Gsoc24-Outreachy28 Zulip Chat
- Organization administrators for this round are: Deb Tankersley, Sheila Karuku
- Read how to communicate effectively and get help on technical questions.