# Contributing to Lessy

First of all, thank you for considering to contribute. Lessy is built by
people, for people. If you don't know where to start, this document will help
you. It is important to read it so **you understand our philosophy** and what
kind of contributions are the most valuable for us. Every one in the community
should embrace [the vision of the project](README.md) so **we all move in the
same direction**.

## How to contribute

Most of the time in free software communities, the only contribution people
think of is development. For Lessy, we want more diverse profiles and so,
ideas. Here is a list of contributions you can make:

- test Lessy, report bugs, make suggestions
- help on the **user experience and interface** (UX/UI), especially if you have
  professional skills (you can start by having a look to [our design guide](https://lessy.io/design))
- help on marketing, **build the external communication with us**
- write articles, make conferences, organize events, invite other members to
  have a drink with you, spread the world and **be an animator of the
  community**
- make illustrations (for instance, we do not have any logo or mascot yet)
- translate Lessy… well, we cannot choose the language in the application yet
  but it's definitly something we want to support in the future
- improve documentation if you think something is wrong or our English is bad
  (it certainly is!)
- and finally, help on development!

Also, if you think you can be of any help but your competences don't match
with these contributions, just tell us what you can do and we'll be happy to
get you started.

All contributors are listed in our [contributors file](CONTRIBUTORS.md).

## Community rules

Always remember that contributing must be fun. **You're not here to be harassed
or suffer from pressure.** It means others must be nice to you and above all it
is reciprocal!

Rules are very basic: be respectful, considerate, welcome people, always be
inclusive in your communication, etc.

You can learn more about these rules and how they are enforced in our [code of
conduct](CODE_OF_CONDUCT.md).

## Responsabilities

As a member of the community, **you have some kind of responsabilities**. For
instance, if you are going to develop, you must keep in mind security and code
quality aspects. If you want to suggest an idea, also have some legal and
morale considerations (for instance, we cannot accept features that would leak
users' data to other services without their consent). If you're gonna to talk
about community members in a conference, make sure they all agree to be
mentioned.

## Getting started

So you're convinced and you want to help? First you should know that all
community discussions are happening in [GitHub tickets](https://github.com/marienfressinaud/lessy/issues/)
for the moment. The advantages are to make most of the discussions transparent
and to centralize all information about the project. Also, we never found any
good tool to support community interactions.

Side note: if you want to contact a specific member for **any reason**, you may
find how to contact her or him in the [contributors file](CONTRIBUTORS.md).

If you're not sure where to look first, or you experience some difficulties,
**feel free to ask**, everyone has been a beginner first!

### Report a bug

Open an issue [on GitHub](https://github.com/marienfressinaud/lessy/issues) and
please be as specific as possible:

- what was expected
- steps to reproduce

If you're hosted on [lessy.io](https://lessy.io) please include when problem
happened and your username.

If you're self-hosted, please include:

- version of Lessy
- environment (Ruby version, OS, etc.)
- related logs

### Submit an idea or give feedback

Open a ticket [on GitHub](https://github.com/marienfressinaud/lessy/issues) and
expose your idea by explaining the problem you're experiencing and how you aim
to solve it. Note we might try to challenge you on pertinence of your idea
and/or on UX aspect. Remember a new feature means more code and so more
complexity in the software, that's the reason why we try to solve more
problematic issues first. Those with Lessy's vision in mind will be considerate
more carefully.

### Contribute to code

To start contributing to code, you might be interested by the ["good first
issue" label](https://github.com/marienfressinaud/lessy/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
on GitHub. It lists all issues we identified as easy for new contributors.

Also, you should have a look to [technical documentation](docs/index.md) to get
started. It is not yet very complete but we hope it's sufficient to have a
running environment.
