diff --git a/docs/docs/contributions.md b/docs/docs/contributions.md new file mode 100644 index 000000000..cdc3da1b8 --- /dev/null +++ b/docs/docs/contributions.md @@ -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).