Ideas we showcased for the Google Summer of Code 2018 are below. Out of these 16 projects; we accepted proposals for 12 projects.
[Wikimedia Commons app] Feedback on how pictures uploaded to Commons get used: statistics, barnstars, light gamificationEdit
The Wikimedia Commons Android app allows users to upload pictures from their Android phone or tablet to Wikimedia Commons. Commons is not only the image repository for Wikipedia but an independent project that seeks to document the world with photos, videos, and recordings. One-way communication can become monotonous, so how about a page that shows how the pictures uploaded are being used? The project aims at sharing feedback about uploaded photos, educating people about topic & copyright and adding some gamification to drive engagement.
Skills required Android SDK and UI design, understanding of RxJava, basic knowledge of Wikimedia APIs
More details https://phabricator.wikimedia.org/T185036
[Wikimedia Commons app] Allow users to browse Commons from appEdit
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons. The main concern of Wikimedia Commons App is to upload photos to Wikimedia Commons. However, according to user feedback, people want to be able to search photos on Commons via the app also. We think this feature will also let people see examples, and consequently increase the quality of uploads.
Skills required Android SDK, Android UI design, Understanding of RxJava, Basic knowledge of Wikimedia APIs
More details https://phabricator.wikimedia.org/T188877
[Education dashboard] Build an Article Finder tool for program leaders and participants to find good topics to work onEdit
The Wiki Education Programs & Events Dashboard is a Ruby on Rails + React.js application that helps people organize groups of newcomers to contribute to Wikipedia. It's used by the global Wikipedia Education Program for Wikipedia writing assignments in college and high school classes, the Art + Feminism editathon campaign, and many other thematic in-person and online outreach projects. One of the initial first steps towards successful Wikipedia authorship is the selection of appropriate content to edit or create. An "Article Finder" tool will help instructors and students search for and select articles in need of editing and contribution. The basic concept is to build a tool that lets users explore a particular topic area on Wikipedia to identify articles that are in need of improvement and are relevant to their program or event, so that participants have a good set of possible topics to work on. The dashboard has a rough, simplistic proof-of-concept, but it's not practical for use by instructors and program organizers and is not integrated into the rest of the dashboard.
More details https://phabricator.wikimedia.org/T111416
Improve the Cargo Special:Drilldown pageEdit
The Cargo extension's Special:Drilldown page provides an automated drill-down interface for all the data in a wiki stored via Cargo. It provides two major benefits: letting users see the overall layout of data at a glance (e.g., this wiki has information about 1,000 museums, 600 of which are in North America); and letting users find specific pages. It is a valuable tool, but there are many ways in which it could be improved. This project is about adding improvements to Special:Drilldown.
More details https://phabricator.wikimedia.org/T184387
Add a spreadsheet interface for modifying multiple pages to the Page Forms extensionEdit
The Page Forms extension allows for editing only one page at a time. Normally this is fine, but in some cases an administrator or "power user" may want to change many pages at the same time - for instance, if there has been a change to the data structure, like a parameter/field getting added to a template. What is needed is a new "special page", defined by Page Forms, that displays a spreadsheet interface for editing many pages, where each row represents a single template call and each column represents a template parameter, i.e. form field. There may be more than one call to a template on the same page, so this interface would need to handle that case as well. This interface should most likely be implemented using the jsGrid library, which thankfully is already in use by Page Forms for other purposes.
More details https://phabricator.wikimedia.org/T63989
Signed statements for WikidataEdit
Wikidata is Wikimedia's knowledge base. It holds data about all kinds of concepts in the world. Some of this data is donated by large institutions. It is then referenced to that institution. Since anyone can edit the data on Wikidata the data might be changed to something completely different from what the reference says. We'd like to give institutions the option to cryptographically sign the data they contribute. This will help keep the data quality in Wikidata high and the data useful as Wikidata grows.
More details phabricator:T138708
Improvements for the Toolforge 'webservice' commandEdit
/usr/local/bin/webservice is a Python application used by Toolforge members to start and stop web services for their tools. This project is about fixing a lot of outstanding bugs and addressing feature requests to make this widely used command nicer.
Skills required Familiarity with Python, Toolforge and Wikimedia movement
More details https://phabricator.wikimedia.org/T147618
[#1Lib1Ref] Build a "worklist" tool for campaigns and in-person editing eventsEdit
In various Wikipedia outreach campaigns and events such as editathons, participants often want to collaborate on improving articles that share a common theme or perhaps exhibit a common problem, such as being too short or lacking sufficient citations. For example, in the #1Lib1Ref campaign, librarians are encouraged to make simple edits to Wikipedia articles through the Citation Hunt tool, but we’ve observed that participants are also greatly motivated to make more substantial edits in articles about about their own cities, thus would like to be able to define a set of articles (or article sections) which need work. Many current activities or campaigns will currently manually develop these worklists on-wiki, which can be challenging to manage for new users, or require using tools not designed for tracking completion of limited tasks (for example, the Programs and Events Dashboard which tracks work by whole article or by editor.). To that end, we would like to develop a new tool to facilitate collaboration on worklists of articles that could be used for campaigns, in person editing events or other similar activities.
More details https://phabricator.wikimedia.org/T187305
Predict relevance of search results from historical clicks using a Neural Click ModelEdit
A research paper entitled "A Neural Click Model for Web Search" proposes generation of relevance predictions from click data using neural networks. The findings show a decent improvement over Dynamic Bayesian Network, which we use today. We have all the necessary input data to train this model; it would be nice to build it out and evaluate it's performance generating labels for our MLR pipeline . The prepared data would be aggregated click counts and contain no query strings. This task will require a reasonable amount of computing, so might require access to WMF analytics compute resources.
Skills required Research, familiarity with Python, and knowledge of Neural Networks
More details https://phabricator.wikimedia.org/T186742
Improve Data Explorer on query.wikidata.orgEdit
Skills required Java Script, CSS, HTML.
Convert MediaWiki extensions WikiLove, MassMessage and MultimediaViewer to use OOUIEdit
More details https://phabricator.wikimedia.org/T187992
Implement support for Flagged Revisions in PywikibotEdit
MediaWiki extension FlaggedRevs metadata is not available in Pywikibot. It would be useful to identify the edition of a Page which has been reviewed, and if a Page has any stable edition. This project will involve working closely with one Wiki community that has FlaggedRevs implemented, to ensure Pywikibot works correctly on that wiki.
More details https://phabricator.wikimedia.org/T57081
Build a similar to @NYPLEmoji bot for Commons imagesEdit
People who tweet an emoji to @NYPLEmoji get a similar image from the collections in response. The code for the project lives here: https://github.com/lolibrarian/NYPL-Emoji-Bot. The proposed project is about creating a similar bot for Commons images. It will introduce a lot of people to the Commons collection and because it uses emoji, not words, it would translate for mobile/desktop users worldwide.
More details https://phabricator.wikimedia.org/T143593
[Analytics] Improvements to Wikistats2 front-endEdit
Wikistats2 is the public statistics website of the Wikimedia Foundation. It is a public dashboard and dataset for metrics related to how people read and contribute to Wikimedia projects. This project contains ~12 subtasks that correspond to very easy to medium self-contained bug fixes and small improvements to Wikistats2 front-end.
More details https://phabricator.wikimedia.org/T189210
Mentors Marcel Ruiz Forns, TBA
[Fund raising] Machine learning for fraud detectionEdit
WMF uses it's own fundraising forms in conjunction with the CiviCRM contact database. The proposal is to build a system that would learn from donation inputs & outcomes to better identify fraudulent donation attempts. (This project has been proposed by a prospective student)
Skills Required CiviCRM, Machine Learning, php
More details https://phabricator.wikimedia.org/T190103
Mentors Eileen McNaughton, TBA
Add a "User" filter to RecentChanges filtersEdit
Recent Changes Filters help users search through RecentChanges in a wiki in a controlled fashion with an array of filters. This task is meant to add another filter, a "user" filter, that allows to view results based on users or to exclude results that were edited by certain users from the list.
More details: https://phabricator.wikimedia.org/T167224
Mentors: Moriel Schottlender, TBA