First off, thank you for considering contributing! It's people like you that make the open-source community such a great place. We welcome contributions of all kinds, from fixing bugs and adding new features to improving documentation and reporting issues.
To ensure a welcoming and inclusive environment, we expect all contributors to adhere to our Code of Conduct. Please read it before contributing.
There are many ways to contribute to this project. Here are a few ideas:
- Reporting Bugs: If you find a bug, please open an issue and provide as much detail as possible, including steps to reproduce it.
- Suggesting Enhancements: If you have an idea for a new feature or an improvement to an existing one, open an issue to discuss it.
- Submitting a Pull Request: If you're ready to contribute code or documentation, we'd love to see your pull request.
We have a list of issues that are great for getting started. Look for issues labeled with "good first issue" to find tasks that are well-suited for new contributors.
To get started with development, you'll need to set up the project on your local machine.
Prerequisites:
- Java 21
- Maven
- Docker and Docker Compose
Steps:
- Fork the repository on GitHub.
- Clone your fork to your local machine:
git clone https://github.com/sonii-shivansh/api-rate-limiter.git cd api-rate-limiter - Build and run the services using Docker Compose:
This will build the Docker images for all services and start them in detached mode.
docker-compose up --build -d
- Run the tests to ensure everything is set up correctly. In each service directory (
api-gateway,rate-limiter-service,product-service), run:./mvnw test
- Create a new branch for your changes:
git checkout -b your-feature-branch
- Make your changes and commit them with a clear and descriptive commit message.
- Push your branch to your fork on GitHub:
git push origin your-feature-branch
- Open a pull request from your fork to the
mainbranch of the original repository. - In your pull request description, provide a clear explanation of the changes you've made and reference any related issues.
- Ensure that all tests are passing in the CI/CD pipeline.
- Git Commit Messages: Follow the Conventional Commits specification.
- Java Styleguide: Follow the Google Java Style Guide.
We look forward to your contributions!