# Contributing

## How to contribute

Reading the [architecture.md](./docs/dev/architecture.md) file is highly recommended before writing any code to get up to the speed with how the project folder structure works and getting familiar with its concepts.

### Bugs

Feel free to submit issues and/or pull requests about bugs. In a bug issue try to include all the relevant information e.g. with bugs what browser you have tested and how to reproduce. Before making an issue use search to make sure one doesn't already exist.

## Features

The "product vision" of sendou.ink is controlled mainly by Sendou. Best way to gauge interest about a new feature is to post about it on the feedback channel of [our Discord](https://discord.gg/sendou). If it's a feature you personally want to implement you can also state that when opening a Discord topic about it for discussion. We can then work on the idea and create it into a GitHub issue before implementation. Before making a new post use the search functionality to look if one already exists (it's okay to bump it up).

You can also just directly make a pull request but untracked feature requests might be rejected if they are not something that fit the vision. The fact that all new code needs maintaining needs to be weighted against how much it benefits the userbase as well as any connections to other features current or future.

## Making pull request

1. Identify an issue to work on

- Issues I have identified as potentially good for external contributors [are marked with the help wanted tag.](https://github.com/Sendouc/sendou.ink/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
- "good first issue" are tasks that might be smaller in scope and easier to get started with

2. Make pull request

- Tell me how I can test it and include unit / E2E tests if possible.

## Help

If you need help with anything related to contributing we have [a Discord server](https://discord.gg/sendou). Especially the "development" channel is meant for this.
