# Contributing to Eloquent-Filter

First off, thank you for considering contributing to Eloquent-Filter! It's people like you that make the open source community such a great place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

## Code of Conduct

This project and everyone participating in it is governed by the [Eloquent-Filter Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.

## How Can I Contribute?

There are many ways you can contribute to Eloquent-Filter, and not all of them involve writing code. Here's a few ideas to get started:

- Reporting Bugs
- Suggesting Enhancements
- Writing Code
- Reviewing Pull Requests
- Improving Documentation

### Reporting Bugs

This section guides you through submitting a bug report for Eloquent-Filter. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.

**Before Submitting A Bug Report:**

- Check the documentation for ways to configure or use the tool that might solve your issue.
- Perform a [cursory search](https://github.com/mehdi-fathi/eloquent-filter/issues) to see if the issue has already been reported. If it has, add a comment to the existing issue instead of opening a new one.

**How Do I Submit A (Good) Bug Report?**

Bugs are tracked as [GitHub issues](https://github.com/mehdi-fathi/eloquent-filter/issues). Create an issue and provide the following information:

- Use a clear and descriptive title for the issue.
- Describe the exact steps to reproduce the problem with as much detail as possible.
- Provide specific examples to demonstrate the steps.

### Suggesting Enhancements

This section guides you through submitting an enhancement suggestion for Eloquent-Filter, including completely new features and minor improvements to existing functionality.

**How Do I Submit A (Good) Enhancement Suggestion?**

Enhancement suggestions are tracked as GitHub issues:

- Use a clear and descriptive title for the issue.
- Provide a step-by-step description of the suggested enhancement with as many details as possible.
- Provide specific examples to demonstrate the steps.

### Your First Code Contribution

Unsure where to begin contributing to Eloquent-Filter? You can start by looking through 'beginner' and 'help-wanted' issues:

- [Beginner issues](https://github.com/mehdi-fathi/eloquent-filter/labels/beginner)
- [Help wanted issues](https://github.com/mehdi-fathi/eloquent-filter/labels/help%20wanted)

### Pull Requests

The process described here has several goals:

- Maintain Eloquent-Filter's quality
- Fix problems that are important to users
- Engage the community in working toward the best possible Eloquent-Filter

Please follow these steps to have your contribution considered by the maintainers:

1. Follow all instructions in [the template](PULL_REQUEST_TEMPLATE.md)
2. Follow the [styleguides](#styleguides)
3. After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing

## Styleguides

### Git Commit Messages

- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line

### PHP Styleguide

Use the [PSR-12: Extended Coding Style](https://www.php-fig.org/psr/psr-12/).

## Additional Notes

### Issue and Pull Request Labels

This section lists the labels we use to help us track and manage issues and pull requests.

#### Type of Issue and Issue State

- `bug`: Indicates an issue with the project
- `enhancement`: Indicates a new feature request
- `help wanted`: Indicates that a maintainer wants help on an issue or pull request
- `question`: Indicates that an issue or pull request needs more information
- `good first issue`: Indicates a good issue for first-time contributors

## License

By contributing to Eloquent-Filter, you agree that your contributions will be licensed under its [MIT License](LICENSE).

