📝 add contribution guidelines to quivr

This commit is contained in:
gozineb 2023-07-05 15:16:39 +02:00
parent 22e8189057
commit dbd46eaeca

View File

@ -0,0 +1,91 @@
# Contributing to Quivr
Thanks for your interest in contributing to Quivr! Here you'll find guidelines for contributing and steps on how you can contribute.
## Table of Contents
- [Community](#community)
- [Roadmap](#roadmap-and-issues)
- [How to Contribute](#how-to-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Feature Requests](#feature-requests)
- [Code Contributions](#code-contributions)
- [Submission Guidelines](#submission-guidelines)
- [Coding Rules](#coding-rules)
- [Frontend Guidelines](#frontend-guidelines)
- [Backend Guidelines](#backend-guidelines)
- [Making a Pull Request](#making-a-pull-request)
- [Contact](#contact)
## Community
We have a vibrant community over at [Discord](https://discord.gg/HUpRgp2HG8) where you can join discussions and ask questions related to Quivr.
## Roadmap and Issues
Before starting, please check our project [Roadmap](https://github.com/users/StanGirard/projects/5) to see if the issue or feature you're considering is already in the works.
You can report bugs or suggest features in the [Issues](https://github.com/StanGirard/quivr/issues). Please use the provided templates and labels for bug reports and feature requests.
## How to Contribute
Check the "Daily View" table in our project roadmap and feel free to pick any ticket in the backlog. Please let us know before you begin work on an issue so we can coordinate efforts and avoid duplicate work.
### Reporting Bugs
Bugs are tracked as GitHub issues and use the bug report template provided.
### Feature Requests
Enhancements are also tracked as GitHub issues and use the feature request template provided.
### Code Contributions
1. Fork the repository.
2. Make your changes in a new git branch.
3. Test your changes.
4. Commit your changes using descriptive commit messages.
5. Push your branch to GitHub.
6. In GitHub, submit a pull request to the original repository.
## Submission Guidelines
## Coding Rules
Please follow the coding guidelines specified below.
### Frontend Guidelines
#### Coding Conventions
- Respect the existing folder and file organizations.
- For components, use atomic design principles. Reuse existing components as much as possible before creating new ones.
- Stick to the ESLint configuration specified in the project. Avoid using eslint-disable comments for new code unless absolutely necessary.
#### Testing
- Write tests for your components using Vitest and React Testing Library. Try to cover as many edge cases as possible.
- Before submitting your contribution, run all tests to make sure they still pass.
### Backend Guidelines
#### Coding Conventions
- Structure your code using classes as much as possible.
- Follow standard Python coding conventions such as the ones defined in PEP 8.
- Comment wisely, providing useful context where necessary
- Always document your functions, classes and modules using docstrings.
- Type hint your functions and methods as much as possible in Python to make it more understandable and less prone to errors.
#### Testing
- Write unit tests for your functionality with pytest.
- Make sure all existing tests pass after you've made changes.
## Making a Pull Request
When making a pull request please respect the templates provided, reference the issue you're addressing, and include relevant visuals if possible.
## Contact
For any queries or discussions, please contact us via [Discord](https://discord.gg/HUpRgp2HG8).