Recommended Projects

This page lists projects that we recommend for newcomers. They have open, welcoming communities; good documentation and getting-started guides; and have pre-selected tasks for you to work on.

These projects will not necessarily have someone you can talk to right now but you should hear back from them within a few days after saying hello on IRC, leaving a comment on an issue tracker, submitting a pull request, etc.

= Mozilla =

Mozilla is a large and vibrant free/open source community best known for their Firefox browser. In addition to Firefox, they also have a variety of other projects including the Bugzilla issue tracker and the Webmaker educational initiative. They participate in newcomer internship programs such as Google Summer of Code and the Outreach Program for Women.

Resources:
 * They have a great tool for helping you find a way to contribute called What Can I Do For Mozilla
 * They run their own IRC server, so they are not on Freenode. More details here.

= WikiMedia =

WikiMedia is the community that runs Wikipedia and MediaWiki (the software behind WikiPedia). Another large and welcoming community, they're a great choice for a first community to contribute to. They also participate in GSoC and OPW.

Resources:
 * Their How to contribute page is a great way to get started.

= OpenStreetMap =

OpenStreetMap is collaboratively building a free map of the world, editable by anyone. Imagine the collaborative editing of Wikipedia, but making a map like Google Maps instead of an encyclopedia. The project has many components and tools using many languages and technologies, both backend and frontend - if you like Ruby on Rails, PostgreSQL, Java, Javascript, C++, C, Python, or other languages, you can find components to contribute to.

Resources:
 * Overview: OpenStreetMap website - explore the map! Here's a summary of the project, and here's the Wikipedia article.
 * Development information: The "Develop" page explains the main components of OpenStreetMap and how they fit together, linking to the code and issue trackers for those individual components. There are also lots of smaller OSM-related open source tools that aren't listed on that page, like the OSM Tasking Manager and MapRoulette projects mentioned below.
 * Contact info: The #osm-dev IRC channel (on the OFTC network) includes many contributors. Here's their page about IRC, including a webchat link you can use to connect to #osm-dev. The "Develop" page also links to a mailing list for developers.

Suggested tasks:


 * Testing documentation: OSM wants people to be able to easily use its freely-licensed data instead of using Google Maps data, so it has a website teaching people how to do this: Switch2OSM. The author of the "Loading OSM data" article (pnorman on IRC) would like feedback on this article! This article expects having access to an Ubuntu instance, and it is designed to be usable for anyone with basic Linux and PostGreSQL knowledge. You can write down comments about the article (and any difficulty you ran into while following it), such as in an Etherpad, and then send the link to pnorman in the #osm-dev IRC channel. If you don't already have convenient access to a computer or server running Ubuntu, you can try setting up a free Amazon Web Services EC2 "microinstance" to play with.
 * Fixing frontend code: MapRoulette is a fun tool that recommends map edits for you to make. The code is on GitHub here, with issues listed here. This issue looks like a good one to get started with fixing: "because we use element fadeouts quite a bit, we should probably disable buttons visually right when the user clicks them - right now there is no visual feedback when clicking a button, other than the dialog fading".
 * Verifying a reported frontend bug: The OSM Tasking Manager also helps map editors find editing tasks to work on. The code is on GitHub here, with issues listed here. You could help the project by seeing if you can reproduce this reported bug: "Seems when scrolling up or down with the mouse wheel within the embed map, it moves both the map scale and the webpage scrollbar" - and then add more details to that bug in a comment.
 * Writing user experience feedback: Make an OpenStreetMap account and try making some map edits (such as correcting any incorrect streets or street names in your neighborhood), and write down notes on your thought process and any problems you encounter, especially parts of the interface you find confusing or frustrating. The default map editing tool is called iD, and you can file bugs here. If you don't know exactly what to report as a bug, you can also write about your experience on the OpenStreetMap website using the built-in "diary entry" feature, and then other OpenStreetMap developers and users can read your feedback to help them figure out how to improve OpenStreetMap.

= Oppia =

"Oppia is a tool for creating interactive online activities that enable students to learn by doing. Its creators believe that this is often a more effective and efficient way of learning than either watching videos or reading texts, since it allows the student to engage more deeply with the activity in a way that videos or books often do not."

This small community is very welcoming and willing to provide mentorship!

Resources:
 * Project Overview
 * Contribution Guide
 * Installation Guide

Tasks:
 * You can find good first tasks to work on here.

= Growstuff =

Growstuff is a community of food gardeners based around an open source platform that helps people learn about growing food, track what they plant and harvest, and swap seeds and produce with other gardeners near them.

This is a small community that is very welcoming and love pair programming.

Resources:
 * Website
 * Repository
 * Getting started guide

= PeerLibrary =

PeerLibrary is a platform facilitating the global conversation on academic literature. It provides online space for collaborative reading and discussing of academic publications. Development community consists of mostly students.

Platform is build on Meteor (node.js framework) and using CoffeeScipt (dialect of JavaScript) as the main programing language.

Resources:
 * Website
 * GitHub repository
 * Installation instructions
 * Guide for contributors
 * List of not time sensitive tickets suitable for new contributors

A general very helpful and always useful task is just testing the website (best latest development version found in  branch) and give us feedback.