Outreach programs/Possible projects

We are using this list of projects as a master branch for Outreach programs such as Google Summer of Code and Outreachy. The projects listed are good for students and first time contributors but they require a good amount of work. They might also be good candidates for Individual Engagement Grants.

If you are looking for smaller tasks check the Annoying little bugs. For a more generic introduction check How to contribute. 

Be part of something big
We believe that knowledge should be free for every human being. We prioritize efforts that empower disadvantaged and underrepresented communities, and that help overcome barriers to participation. We believe in mass collaboration, diversity and consensus building to achieve our goals.

Wikipedia has become the fifth most-visited site in the world, used by more than 400 million people every month in more than 270 languages. Wikimedia Commons, Wikidata and Wiktionary are some of the other free content projects hosted by Wikimedia thanks to MediaWiki. There is also a wide collection of open source software projects around them.

Much more can be done: stabilize infrastructure, increase participation, improve quality, increase reach, encourage innovation.

Where to start
With literally tens of thousands of open tasks in our backlogs, experience tells us that most candidates have more chances of success if they bet on an existing proposal. You can check the list of featured project ideas below and our incubator of possible projects.

You can also search in Wikimedia Phabricator for tasks fitting your interests and skills. If you find an interesting task, you can suggest the idea in the task itself (a simple paragraph is enough for a first contact). When commenting, please associate the task with the tag.

Bringing your own idea is also possible, but usually this requires a good knowledge of our community and starting to plan months before the call for submissions. Before investing too much time on it, create a new task in Phabricator with a simple draft. We will share our first impression in the task itself.

If you have questions about using Phabricator, check Phabricator/Help.

Learn and discuss
Recommended reading:
 * Starter kit for new Wikimedia tech volunteers.
 * How to become a MediaWiki hacker is a good place to start learning your skills and becoming a better candidate.
 * Lessons learned for mentorship programs is particularly useful when you start writing your application.

If you have general questions you can start asking at the |Discussion page. IRC channel is also a good place to find people and answers. We do our best connecting project proposals with Phabricator reports and/or wiki pages. Other contributors may watch/subscribe to those pages and contribute ideas to them. If you can't find answers to your questions, ask first in those pages. If this doesn't work then go ahead and post your question to the wikitech-l mailing list.

Add your proposal

 * Use your mediawiki.org user page to introduce yourself.
 * Draft your project creating a new Phabricator task following the proposed application template. If you proposal addresses an existing project idea published in Phabricator, then you just need to click "Create subtask" in the project idea task. This will add automatically the projects and the subscribers of the project idea to your proposal.
 * Try to pick a short, memorable and catchy title which communicates your core idea on how to tackle the issue/project you chose.
 * Associate your proposal to the Phabricator project(s) related to the program you want to apply, e.g. Google-Summer-of-Code-2015 or Outreachy-round-10.
 * The GSOC student guide is a good resource for anybody willing to write a good project proposal. And then there is a list of DOs and DON'Ts full of practical wisdom.

Possible mentors
If you need to find mentors, usually the best starting point is the Phabricator task of the project idea missing mentors. Finding mentors one month or more in advance usually ends up with good results. Having to find mentors within days or a couple of weeks before the deadline usually ens up with bad results.

If are volunteering as a mentor, please check the Possible mentors page, the selection process, and the Lessons learned.

Project ideas
The project ideas listed below have gone through a selection process. If you are looking for more inspiration, we also have an incubator of possible projects that require community discussion and/or mentors.

MediaWiki extensions

 * Extension to identify and delete spam pages. Skills: PHP, JavaScript, Ajax.
 * Newsletter extension. Skills: PHP, JavaScript.
 * Wikidata Pagebanner Extension. Skils: PHP, Git, familiarity with Wikidata is helpful

Language

 * Extensive and robust localisation file format coverage for Translate extension. Skills: PHP, XML, aware how to write robust and secure PHP code.
 * One stop translation search. Skills: Backend coding with PHP, frontend coding with jQuery, Solr/ElasticSearch/Lucene.
 * Multilingual SemanticMediaWiki. Skills: PHP and web frontend; having used Semantic MediaWiki and Semantic Forms is a plus.
 * Unified language proofing tools integration framework Skills: JavaScript, regular expressions, data abstraction. Knowledge of the (human) languages in question is not required, but can be helpful.

Pywikibot

 * Implement support for OAuth. Skills: OAuth, Python, MediaWiki, Travis-CI.

Continuous integration

 * Improving static analysis tools for MediaWiki. Skills: PHP, basic familiarity with MediaWiki code conventions.

Analytics

 * Allow contributors to update their own details in tech metrics directly. Skills: Python, AngularJS

VisualEditor

 * Graph editing in visual editor Skills: JavaScript majorly, with some PHP

System Programming

 * implement better failure-scenario geoip mapping in gdnsd Skills: C, system programming

Multimedia

 * Allow uploading 3D files to Wikimedia Commons Skills: PHP, JS, and a service to render 3D models on screen

Beyond software development

 * No featured projects yet.