# Introduction

You are here to help on [HURUmap-UI](https://codeforafrica.github.io/Hurumap-UI/)? Awesome, feel welcome and read the following
sections in order to know what and how to work on something. If you get stuck
at any point you can create a ticket on
[GitHub](https://github.com/CodeForAfricaLabs/sensors.AFRICA/issues).

All members of our community are expected to follow our
[Code of Conduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct). Please make
sure you are welcoming and friendly in all of our spaces.

Following these guidelines helps to communicate that you respect the time of
the developers managing and developing this open source project. In return,
they should reciprocate that respect in addressing your issue, assessing
changes, and helping you finalize your pull requests.

## Types of Contributions

You can contribute in many ways. For example, you might:

- Add documentation and "how-to" articles in the [README](README.md) or the wiki
- Suggest Enhancements
- Fix issues
- Submit Bug reports

### Bug Reports

_If you find a security vulnerability, **DO NOT** open an issue. Email
[security@sensors.africa](mailto:security@sensors.africa) instead._

If you're reporting a bug, please include:

- Your operating system name and version
- Any details about your local setup that might be helpful in troubleshooting.
- If you can, provide detailed steps to reproduce the bug.
- If you don't have steps to reproduce the bug, just note your observations in
  as much detail as you can. Questions to start a discussion about the issue
  are welcome.

To ease the process of reporting bugs and issues, consider using our
[issue template](https://github.com/CodeForAfricaLabs/sensors.AFRICA/blob/master/.github/ISSUE_TEMPLATE.md)
and don't forget to add an appropriate
[label](https://help.github.com/articles/creating-a-label/) to the issue.

### Writing Documentation

Did you find a typo? Do you think that something should be clarified? Go ahead
and suggest a documentation patch. sensors.AFRICA could always use more documentation,
whether as part of the official docs, in docstrings, or even on the web in blog
posts, wiki, articles, and such.

### Fixing Issues

Look through the GitHub issues for bugs. Anything tagged with "bug" is open to
whoever wants to implement it.

### Suggesting Enhancements

Before creating enhancement suggestions, please check the issues list as you
might find out that you don't need to create one. When you are creating an
enhancement suggestion fill out the
[issue template](https://github.com/CodeForAfricaLabs/sensors.AFRICA/blob/master/.github/ISSUE_TEMPLATE.md)
and [label](https://help.github.com/articles/creating-a-label/) the issue as a
new feature.

## Your first contribution

Unsure where to begin contributing to sensors.AFRICA? You can start by looking through
these `beginner` and `help-wanted` issues:

- `Good first issue` - issues which should only require a few lines of code, and a
  test or two. Good for newcomers
- `Help wanted issues` - issues which should be a bit more involved than beginner
  issues.

Once your changes and tests are ready to submit for review:

1. Test your changes

   Run the tests if you have any and at the bare minimum, test your changes
   manually.

2. Rebase your changes

   Update your local repository with the most recent code from the main sensors.AFRICA
   repository, and rebase your branch on top of the latest develop branch.

3. Submit a pull request

   Push your local changes to your forked copy of the repository and submit a
   pull request. In the pull request, choose a title which sums up the changes
   that you have made, and in the body provide more details about what your
   changes do. Also mention the number of the issue where discussion has taken
   place. Preferably use our
   [PR template](https://github.com/CodeForAfricaLabs/sensors.AFRICA/blob/master/.github/PULL_REQUEST_TEMPLATE.md).

   Then sit back and wait. There will probably be discussion about the pull
   request and, if any changes are needed, we would love to work with you to
   get your pull request merged into sensors.AFRICA.

## Code Style

Please adhere to the [PEP8](https://www.python.org/dev/peps/pep-0008/)
coding conventions for the Python language,
[Google HTML/CSS Style](https://google.github.io/styleguide/htmlcssguide.html) for HTML/CSS and
Airbnb [Javascript](https://github.com/airbnb/javascript) &amp; [React](https://github.com/airbnb/javascript/tree/master/react) style guides for Javascript.
These style guides evolve over time as additional conventions are identified
and past conventions are rendered obsolete by changes in the languages themselves.
Ensure to keep updated.

## Ground Rules

The goal is to maintain a diverse community that's pleasant for everyone.
That's why we would greatly appreciate it if everyone contributing to and
interacting with the community also followed this
[Code of Conduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct).
The [Code of Conduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct) covers our
behavior as members of the community, in any forum, mailing list, wiki, website,
Internet relay chat (IRC), public meeting or private correspondence.

Please see [contribution-guide.org](http://www.contribution-guide.org) for details on what we expect from contributors. Thanks!
