Files
freeCodeCamp/CONTRIBUTING.md
2018-10-10 16:33:24 +05:30

8.6 KiB

Read these guidelines in English 中文 русский عربى Español Português

Contribution Guidelines

Hello 👋 !

freeCodeCamp.org is possible thanks to thousands of kind volunteers like you. We are grateful for your interest in contributing and we are exited to welcome you onboard.

There are a lot of ways you can help and contribute to the community. For instance, you can copy edit, and curate content for guide articles and curriculum. Translate freeCodeCamp into a language that you speak. Write code, report and fix bugs. Triage issues and help moderate and review changes to the codebase. You can help campers, provide feedback and coding assistance and more.

Any and all contributions are welcome alike.

A quick note before getting started:

We have a "Code of Conduct" that you should follow at all times. In summary - We want contributing to freeCodeCamp.org, foster a welcoming environment that is safe and inclusive for everyone.

Be polite and succinct in your conversations with fellow contributors. Remember to respect everyone's time and efforts, they are helping the community same as you.

Happy Contributing 🎉!

Here are some fun ways you can help

You can choose to contribute to an area of you interest:

  1. Contribute to this open source codebase.

    Help us in creating or editing guide articles, curriculum challenges and fixing bugs on the learning platform.

  2. Help campers on our public forum.

  3. Help us add subtitles on our YouTube channel.

Contribute to this open source codebase

We have a huge open source codebase of the thousands of Curriculum challenges and Guide articles. These challenges and articles make up the learning content available on the freeCodeCamp.org's learning platform.

You can help us:

Research, Write and Update our guide articles

What are Guide articles?

The Guide articles aim to be short articles to get you started and familiar with these concepts before going on to read more in-depth material.

Guide articles can be an explanation of a syntax, design pattern, what aria labels are for, or something like what the numbers mean in the top right-hand corner of your screen when at freecodecamp.org.

You can find an example article about HTML Elements here.

What can I write an article about?

Front-end development (adjective form with a dash) is when you are working on the front end (noun form with no dash). The same goes with the back end, full stack, and many other compound terms.

We welcome your help writing these articles. You don't have to be an expert in a topic to write about it—this entire Guide is open source, so even if you make a mistake, another contributor will eventually correct it.

To help, find a stub article on our Guide website, write the article, then open a pull request (PR) to replace the stub with your article. A pull request is how you'll suggest changes. It lets others know about your changes, review them and adopt them.

If you can't find a stub about the topic you'd like to write about, you can open a PR that creates the stub and includes your draft article.

If you would like work on these, follow along these guidelines:

How to work on Guide articles.

Create, Update and Fix Bugs in our curriculum challenges

[TODO]

Translate guide articles and curriculum challenges

You can help us translate our Guide articles and Curriculum challenges for a language that you speak. Currently we have translated versions in:

  • Chinese : 中文
  • Russian : русский
  • Arabic : عربى
  • Spanish : Español
  • Portuguese : Português

Most of these versions are machine translated. We would love your help in improving the quality of these translations.

If you would like work on these, follow along these steps:

[TODO]

Help us fix bugs in freeCodeCamp.org's learning platform

Our learning platform runs on a modern JavaScript stack. It has various components, tools and libraries including but not limited to Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack, and more.

Broadly,

  • We have a Node.js based API server.
  • A set of React based client applications.
  • A script that we use to use our Frontend projects.

Contributing to this requires some understanding of APIs, ES6 Syntax and a lot of curiosity.

If you would like work on these, follow along these steps:

[TODO]

FAQs

I found a bug that is not on the board. Where and when should I report?

If you think you've found a bug, first read the "Help I've Found a Bug" article and follow its instructions.

If you're confident it's a new bug, go ahead and create a new GitHub issue. Be sure to include as much information as possible so we can reproduce the bug. We have a pre-defined issue template to help you through this.

Please note, that any issues that seek coding help on a challenge, will be closed. The issue tracker is strictly for the codebase related issues and discussions. You should seek assistance on the forum before reporting whenever in doubt.

I found a security issue:

Please don't create GitHub issues for security issues. Instead, please send an email to security@freecodecamp.org and we'll look into it immediately.

I am stuck on a step while contributing and need help:

Feel free to ask for help in:

We are excited to help you contribute to any of the topics that you would like to work on. Make sure you search for your query before posting a new one. Be polite and patient. Our community volunteers and moderators are always around to guide you through your queries.

I am new to GitHub and Open Source in general:

I dont understand the different labels on the issues and pull requests:

Our community moderators triage issues and pull requests based on their priority, severity and other factors. You can find a complete glossary of their meanings here. You should go through Help Wanted or first timers welcome issues for quick lookup of what is available for you to work on.

I found a typo, should I report an Issue before I can make a pull request?

You can straight away create a pull request without having to report any issues, for typos, or small changes to verbiage. Issues are a tool to seek confirmation on changes that you would want to propose via a pull request.