Google Summer of Code/2021
Also see the full timeline.
|February 20||Mentoring organization application deadline|
|March 10||Mentoring organizations announced|
|March 29||Student application period begins|
|April 13||Student application deadline|
|May 17 (previously May 4)||Student projects announced|
|May 17 to June 7 (previously May 4 to May 31)||Community bonding period|
|June 7 to August 16 (June 1 to August 24)||Coding period|
Ideas for projects
Watch this space for project ideas! We will add ideas below between now and when the application period opens.
Add autocompletion to Page Forms spreadsheet display
The Page Forms extension provides a spreadsheet-style editing display in two places: in the page Special:MultiPageEdit (for editing many pages at the same time) and in regular forms, with the setting "display=spreadsheet" (for editing multiple instances of the same template within one page). This spreadsheet-style editing can make use of a number of helpful input types (dropdown, date, etc.) for different cells, but it does not allow - unlike regular Page Forms forms - for doing autocompletion. This project would add this capability.
More details: phab:T273530
Mentors: Yaron Koren, Sahaj Khandelwal
Upgrade WebdriverIO to the latest version for all repositories
MediaWiki is a free and open-source Wiki application. It powers a lot of websites including Wikipedia, Wiktionary, and Wikimedia commons.
Delivery of optimal quality software with unique and innovative features is always a priority. However, without evaluating software components under various expected and unexpected conditions, one cannot guarantee these aspects. Therefore, testing is performed to test every software component large and small. To increase the efficiency of the testing process and to maximize test coverage, automation is imperative. Automation not only improves the quality of testing but also makes it faster and reduces the cost involved.
We use WebdriverIO as a browser driver for our test automation framework. We are currently using version 6 (2 repositories still at v4). WebdriverIO v7 was released on February 9, 2021. CodeSearch: v4, v6
The major goal for the Google Summer of Code 2021 internship is to migrate all repositories to v7
More details: phab:T274579
Update the front-page of Wikimedia projects
In 2016, the front page of Wikipedia: www.wikipedia.org, underwent a subtle refresh. The code was moved from a series of scripts on meta.wikimedia.org into a Git repository utilizing Mustache templates and a build step to generate the final HTML page. Unfortunately, Wikimedia’s other projects, like Wikiquote, Wikisource, Wikibooks, etc. we left out of this refresh and their pages are still generated via the scripts on meta.wikimedia.org. This project aims to convert these pages into HTML templates so that they can run through the same build-step as www.wikipedia.org.
- Project tag: Wikimedia-Portals
- Workboard: https://phabricator.wikimedia.org/project/board/1619/
- Task: T273179
Mentors: Jan Drewniak
Develop a web dashboard or a command line tool to help inventory and/or monitor database and backup objects
Wikimedia uses over 200 MariaDB instances to store content and metadata for Wikipedia and other free knowledge projects. It also uses Bacula, mydumper and xtrabackup to perform backups of its hundreds of terabytes of data in its infrastructure. While standard open source tools for both monitoring and automation are used when possible, there are some tasks that require custom development. A few suggestions for improving existing monitoring tools or developing web frontends for them in order to maintain an inventory and track several objects distributed among the database and backups infrastructure, to choose among:
- MariaDB instances inventory (zarcillo web interface)
- Database object inventory
- Database backup inventory improvements
- Improve WMF Bacula monitoring
- MySQL account metadata inventory
More details: phab:T274636
Skills required: cli or web development basics, Python (preferred, probably with Django or Flask), PHP, basic databases and SQL/file management knowledge
Develop a UserScript/Gadget tutorial on MediaWiki.org similar to Wikipedia:The_Wikipedia_Adventure
The project is about to create a guided adventure tour on MediaWiki and MetaWiki to give users insight on “How to create userscript on Wikimedia projects”. The adventure will be designed like The Wikipedia Adventure which will have 3-4 missions.
More details: phab:T274635
Add zooming and panning to the Wikisource Pagelist Widget
Currently, while using the Pagelist widget, the user is presented with the picture of a scanned page and is asked to identify the page number on the scan. However, there is no option to zoom or pan the scanned image inside the Pagelist widget. Adding the option to zoom and/or pan the image will allow users to see the page number for scans that have a very small font, or have lots of text (for example newspapers scans)
During the course of the project, the following should be accomplished:
- Review and test various zooming and panning libraries available.
- Integrate the library with the current code of the pagelist widget.
- If time permits, work on replacing the old jQuery-based zooming and panning library used by the Page: namespace editor.
More details: phab:T262146
Gamified Knowledge Base Completion Plugin for Wikibase/Wikidata
Open data collections -- like Wikidata -- are created and maintained by volunteers and are thriving on community knowledge. Missing or new information needs to be added by community members, otherwise the knowledge base will dry out and be obsolete after a while. Hence, completing a knowledge base is a crucial task within any community-driven initiative. We propose here to implement a Wikibase plugin that is dedicated to facilitate the Wikidata completing process. While navigating through Wikidata, the plugin will show to the user facts extracted from textual sources as well as other knowledge bases (e.g., Wikipedia) which need to be validated. Hence, the Wikibase plugin is showing users suggestions of facts that should be added or changed within the Wikidata knowledge base.
More details: phab:T275102
Create Cypress tests for Wikipedia-Preview
At the Inuka-Team we are building a plugin for partners to show wikipedia content available as contextual information on 3rd party sites.
The major goal for the Google Summer of Code 2021 internship is to write Cypress tests for the plugin.
MediaWiki page: https://www.mediawiki.org/wiki/Wikipedia_Preview
More details: phab:T277284
Add a custom picture selector to the Commons Android app
The Commons app lets the user select a picture to upload.
Your role is to create a new picture selection UI that shows differently pictures that have been uploaded already.
More details: phab:T278015
Skills required: Android, Java
Retrain models from ORES to be deployable on Lift Wing
This project aims to have a Google Summer of Code intern work in designing and training three ML models over the course of the internship which recreate the performance of three currently deployed ORES models.
More details: phab:T278261
Skills required: Python, Machine Learning
- Reach out for general questions on the #gsoc21-outreachy22 Zulip chat (preferred) or send an email to the organization administrators: Srishti Sethi (ssethiwikimedia.org), Pavithra Eswaramoorthy (pavithraesoutlook.com), Gopa Vasanth (gopavasanth1999gmail.com) and Ankit Maity (ankitmaityoutlook.com).
- Ask a technical question in the support places.