Google Summer of Code/2022
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. |
Program timeline
editAlso see the full timeline.
February 7 - 18:00 UTC | Mentoring organization application deadline |
March 7 - 18:00 UTC | List of accepted mentoring organizations published |
April 4 - 18:00 UTC | GSoC contributor application period begins |
April 19 - 18:00 UTC | GSoC contributor application deadline |
May 20 - 18:00 UTC | Accepted GSoC contributor projects announced |
May 20 - June 12 | Community Bonding Period |
June 13 - September 12 | Coding period |
July 29 - 18:00 UTC | Phase 1 Evaluation deadline (standard coding period) |
September 12 - 18:00 UTC | Final project submission due |
Accepted projects
editName | Location | Project | Mentor(s) | Updates |
---|---|---|---|---|
Nivas Ramisetty | India | Campaigns Retention Metrics Dashboard | KCVelaga, Jayprakash12345 | Joined Zulip |
Ayan Sarkar | India | Improve the picture selector of the Commons Android app | Syced, Aditya | Joined Zulip |
Lalit Suthar | India | Extending the WikidataComplete plugin for enabling data donations, recommendations, and gamification | Gabinguo, Aleksandr Perevalov | Joined Zulip |
Ankit Gupta | India | Edit Request Wizard | Enterprisey, SD0001 | Joined Zulip |
Shashwat Khanna | India | Modernize JavaScript build process and dependencies for Wiki Education Dashboard | Sage (Wiki Ed), Dhruvdutt Jadhav | Joined Zulip |
Lennard Hofmann | Germany | Rewrite the Wikidata Infobox on Commons in Lua | Mike Peel | Joined Zulip. |
Amal Paul | India | Command-line interface for Canasta | Jeffrey Wang, Yaron Koren | Joined Zulip |
Recommended steps for accepted candidates
editSee Google_Summer_of_Code/Participants#Accepted_participants
Ideas for projects
editWatch this space for project ideas! We will add ideas below between now and when the application period opens.
Warning: Application Peroid Ended! See accepted participants list above.
1. Edit Request Wizard
editCreate a step-by-step form to help beginners submit a Wikipedia edit request. An edit request is a request for someone to change some text in an article. Edit requests are an important part of Wikipedia. The form you create will help the edit requests comply with Wikipedia policy. For example, if the edit request cites a source, that source should be reliable.
Why? To fulfill Wikipedia's mission, it must be easy for anyone to become an editor. However, Wikipedia has a lot of rules. It's not easy for beginners to follow them. This project will guide beginners as they make their first edits. Most of their attempts will need further help, so we will submit them as edit requests.
This project will make editing more accessible for people from all backgrounds.
More details: T300454
Skills required: This project has frontend and backend components, but the backend is simple. HTML/CSS/JS, any frontend framework (preferred), any backend framework required (Python or Rust preferred).
Possible mentors: User:Enterprisey, User:Firefly, User:SD0001
Expected size of project: 350 hours
Difficulty rating: medium
2. Improve the picture selector of the Commons Android app
editThe Commons app allows Android users to select pictures from their phone for upload to Wikimedia Commons.
The picture selector is great but could be improved:
- Fast scrollbar.
- UI to mark some pictures as "not for upload" (for instance family pictures).
- Hide/unhide marked pictures.
- Minor change to the selection indicator.
- Gestures and indicator when previewing a picture full-screen.
More details: GitHub issue
Skills required: Android development, Git. No Mediawiki experience required.
Possible mentors: User:Syced and Aditya
Expected size of project: 350 hours
Difficulty rating: medium
3. Modernize JavaScript build process and dependencies for Wiki Education Dashboard
editWiki Education Dashboard (the Ruby on Rails app that powers Programs & Events Dashboard) is a complex web app for keeping track of contributions to Wikimedia projects. It's widely used by the global Wikimedia community for edit-a-thons, classroom wiki writing assignments, and a variety of other initiatives.
The goal of this project is to improve the system's JavaScript by updating dependencies, replacing unmaintained libraries, and generally trying to take advantage of recent improvements in the JS ecosystem.
More details: T301731
Skills required: strong JavaScript, ideally some experience with Webpack. Ruby experience helpful but not required.
Possible mentors: User:Sage (Wiki Ed)
Expected size of project: 350 hour
Difficulty rating: medium
4. Rewrite the Wikidata Infobox on Commons in Lua
editWikimedia Commons is a multilingual project that hosts over 80 million freely licensed multimedia files, which are available for use on Wikipedia and other websites. These files are organised using categories, around 4 million of which display a multilingual infobox (example for the South Pole Telescope) that fetches information from Wikidata to describe the category's contents in over 200 languages. It is currently coded using MediaWiki ParserFunctions and calls to Lua modules, and it currently consumes a lot of server resources and is slow to load.
The aim of this project is to rewrite the Wikidata Infobox completely in Lua, so that it loads significantly more quickly and efficiently, and to make sure it is easy to expand it in the future.
More details: T302098, microtasks: T302101, T302102
Skills required: Experience with Lua coding is the only requirement, you can gain Wikidata, Commons, and Mediawiki experience during the project.
Possible mentor(s): Mike Peel
Expected size of project: 350 hours
Difficulty rating: medium
5. Extending the WikidataComplete plugin for enabling data donations, recommendations, and gamification
editWikidata is a huge structured data repository of the Wikimedia Foundation, used for example by smart assistants like Siri and Amazon Alexa. The Knowledge is maintained similarly to Wikipedia in a Wiki manner. Different institutions are contributing or adding data to Wikidata. The goal of this project is to allow data donations to be inserted into Wikidata after an approval process which should be as easy as possible for the human Wikidata editors. WikidataComplete and WikidataComplete Gadget (from GSoC 2021) is a first step toward this direction.
More details: T301613
Skills required: We search for someone who is confident both in the backend and the front-end. We are aiming in developing this using Java with the Spring Boot framework, or Python with Flask for the back-end and using React in the front-end.
Possible mentor(s): DD063520, Gabinguo, AnBo-de, Aleksandr Perevalov
Expected size of project: 350 hours
Difficulty rating: medium
6. Command-line interface for Canasta
editCanasta is a Docker image for MediaWiki that contains, in addition to core MediaWiki, a variety of skins and extensions that are geared for enterprise users. One thing currently lacking is a set of commands to make administration easier. Useful commands would include:
- Installing a container
- Updating a container (by deleting and reinstalling it)
- Moving (cd) into the main directory of a Canasta installation
- Backing up an installation's database and uploaded files
- Restoring a wiki from a backup
If there is additional time, it would be great to also include:
- Improved support for an installation within Kubernetes, instead of the default Docker Compose
- Support for AWS and Microsoft Azure
It may be possible to make use of an existing CLI library for this task (like Cli), but most likely this would be better done as a new library, which could thus be created in any language. The current plan is to use Python for this set of scripts, although we are open to other options.
More details: T301893
Skills required: No skills are required, though knowledge of Docker, Kubernetes and Python would all be helpful.
Possible mentors: Jeffrey Wang, Yaron Koren
Expected size of project: 350 hours
Difficulty rating: medium
7. Deprecate VirtualRESTService
editVirtualRESTService was introduced to encourage the internal use of HTTP services. This is similar to the older mechanism for internal calls to the web API, which now have been deprecated by T169266 (Clarify recommendations around using FauxRequest).
Since using VirtualRESTService has the same fundamental problems as using FauxRequest, it should also be deprecated and phased out. This should be simple enough, since it has never seen wide spread use.
The intention of this RFC is to remove the generic framework for exposing internal services via VirtualRESTServiceClient. Instead, those would use the native approach of a service locator like MediaWikiServices, without pseudo urls and path/query strings.
More details: T179680
Skills required: PHP, MediaWiki, Web Services, REST
Possible mentor(s): Daniel Kinzler, Derick Alangi
Expected size of project: 350 hours
Difficulty rating: medium
8. Campaigns Retention Metrics Dashboard
editIn Wikimedia, campaigns are activities run annually by many volunteer and partner-led communities to encourage new and existing users to contribute images, data and information in categories like earth, science, monuments, art etc. One of the key impacts of campaigns is, it acts as a way to introduce the Wikimedia projects for users who are new to the contributing side of it. Campaigns are considered to be an easy gateway for new users to get acquainted with the process of adding and modifying content across the Wikimedia projects like uploading a document/image to Wikimedia Commons or editing an article on Wikipedia. As new users enter the Wikimedia ecosystem through campaigns, it would be interesting to track the statistics of these users in order to understand user retention and quantify impact of campaigns in this area.
With inspiration from Wiki Loves stats tool, the idea is to develop a dashboard that can track and share retention metrics of participants, especially newcomers after a particular campaign ends. For this, we need to monitor the contributions of the users across Wikimedia projects after the end of a particular campaign. Initially, our scope will be limited to new users from photo campaigns and understand their retention over various Wikimedia projects after the end of the campaign over regular time intervals: 3, 6, and 12 months.
More details: T304826
Skills required: SQL and Python for data analysis (good expertise is required), basics of HTML/CSS + Flask/Django would be helpful.
Possible mentor(s): KCVelaga, Jayprakash12345, Sadads
Expected size of project: 350 hours
Difficulty rating: hard
Contact
edit- Reach out for general questions on the #gsoc22-outreachy24 Zulip chat.
- Organization administrators for this round are: Gopa Vasanth, Srishti Sethi, Aisha Khatun, Jay Prakash.
- Read how to communicate effectively and get help on technical questions.