First Tasks

This page exists to provide you with good, small tasks as you get started contributing to open source projects.

Every project on this page has:
 * Clear instructions for how to contribute to their project, including setting up a development environment, contributing changes, and how to contact them.
 * At least one hand-picked task that (hopefully!) can be completed within an hour or two.
 * At least one maintainer/contributor who's really excited about welcoming you to their project.

If you don't find any tasks you'd like here, try these additional sources:


 * This page has curated tasks from previous events, but there are no maintainers for these projects at the event. That said, other mentors will probably be able to help you.
 * Search 700+ open source projects at once
 * Find a project that fits your interests using this guide.

You can see past first tasks, which have been successfully resolved, here.

This page was last curated 2/14/2014. Tasks on this page may have been resolved since then, so check their status in their respective issue trackers.

= OpenHatch =

Description: OpenHatch.org sees itself as "free software's welcoming committee." We make web tools and run events to help people join open source projects, primarily in Python and Django with some Javascript, CSS, and HTML. We're always looking for enthusiastic new people willing to file bugs, submit patches, ask questions, write documentation, and review code. To help you imagine the site, the volunteer opportunity finder helps people find "easy" bugs to work on in projects all over the web, and supporting code to download that data through API use and scraping; the profile tool helps people write about their experience contributing to open source; and the training missions are interactive, plot-based teaching tools to help people learn skills required in open source in a friendly setting.

Resources:
 * Project Overview
 * Setting up the development environment
 * Contributing changes
 * Contact info: paulproteus (aka, Asheesh) on #openhatch ; also, see community page in the documentation
 * Code: https://github.com/openhatch/oh-mainline

Tasks:

Each of these is a bug that you should fix on your computer, and when you are satisfied with the fix, create a pull request for. These are supposed to be sorted from easiest to hardest, though your mileage may vary.

Harder tasks:
 * https://openhatch.org/bugs/issue898 -- Sign up for an account on AppVeyor and configure their site to automatically periodically test if oh-mainline runs properly on Windows.


 * http://openhatch.org/bugs/issue917 -- The contact info form, the personal name editing form, the tag editing form do not use Django's "cross-site request forgery" protection. An independent security researcher found an issue on the site where we are not protected against this sort of attack. You may notice discussion of stickers on the bug; that's because we promised we'd send stickers to the researcher. Asheesh/paulproteus will be very happy to help you; find him on IRC!


 * http://openhatch.org/bugs/issue71 -- add support to the site for Gravatars. Very open ended at the moment. I would prefer to leave the task of actually downloading the Gravatar to be done in the user's web browser, but that might seem kind of like an odd implementation strategy.

= Open Science Collaboration blog =

Description: The Open Science Collaboration is "a loose network of researchers, professionals, citizen scientists, and others with an interest in open science, metascience, and good scientific practices." They keep a weekly blog to publish opinions and stimulate discussion. Most members of the OSC are not technical, so they could use some help adding features and fixing bugs with the software that runs their blog. The OSC blog is built using Pelican, a static-site generator built with Python. Most files in the project are Python, Markdown, or HTML/CSS files.

Resources:
 * The blog itself is here.
 * Overview and instructions for setting up the development environment and contributing changes can be found in the repository's main readme.
 * Main contact: Shauna (shauna on Freenode; shaunagm at gmail dot com); back-up contacts: Sheila (skay on Freenode); and the general mailing list (mostly not used for technical development)
 * If you run into issues with any of the tasks, please update them in the issue tracker! If you encounter new issues with the project - incomplete or confusing documentation, some other kind of bug - please feel free to make new issues in the issue tracker.

Tasks:
 * Add "Read more" functionality: Project members want the ability to shorten long posts using a "read more" link.  Add the pelican plug-in (linked on the issue) to the blog.  Make sure that the plug-in works, and add documentation to the main README showing how post editors should reference the plug-in in posts.
 * Sharing buttons for articles: Add buttons to allow readers to easily share articles across social media platforms.
 * Fix whitespace css issue: Currently all images on the blog have extra whitespace added via css.  Create a special class for "author avatars" with the appropriate amount of padding, and return the plain image class to having no padding.

= WelcomeBot =

Description: WelcomeBot is an IRC bot designed to welcome people into the #openhatch IRC channel (although it can be easily adapted for use in other channels). It is written in python, and features the socket module.

Resources: Source Overview and installation/contributing guides: can be found in the repository's readme. Main contact: Shauna (shauna on Freenode; shaunagm at gmail dot com) Updates/problems/ideas: Please use the issue tracker! (As well as asking shauna about them on IRC.)

Tasks:
 * Add rules to catch unidentified nicks - When users who have registered their nicknames join IRC without identifying, different IRC clients will change their nickname in different ways. The bot currently only accounts for one of those ways, which means people are greeted unnecessarily.
 * Fix hello/help functions - The bot currently casts too wide a net when looking for key phrases to respond to. Using regex or some other method, create a better filter for when the bot should respond.

= TEMPLATE: NAME =

Description: Please describe your project here. Make sure to mention the overall goal of your project as well as mentioning the main technologies it uses. People using this page may be doing searches for keywords such as topics, types of software, or language names, so make sure they can find your project!

Resources:
 * Project Overview
 * Setting up the development environment
 * Contributing changes
 * Contact info

Tasks: