Contributing to DSA
Thank you for considering contributing to our DSA-focused Java project! We welcome contributions that improve the codebase, documentation, and algorithms. By following these guidelines, you help us maintain a high standard of quality and organization.
Table of Contents Code of Conduct How to Contribute Reporting Bugs Feature Requests Code Contribution Guidelines File Naming Coding Style Testing Commit Messages Pull Request Process License
Code of Conduct Please review and follow our Code of Conduct.
How to Contribute There are several ways to contribute to this project:
Fix bugs or improve the codebase. Add new data structures or algorithm implementations, Leetcode solutions, or any interview Questions. Improve documentation and code readability. Suggest new features related to DSA. Please note that any code contribution must strictly adhere to the DSA and Problems theme of the project.
Reporting Bugs If you find any bugs, please:
Search if an issue for the bug already exists. If no such issue exists, create a new issue. Describe the problem clearly. Include steps to reproduce the issue, if applicable. Provide any relevant context or logs. Feature Requests For new features or enhancements, please open a new feature request issue. Describe:
The problem you're solving. How your proposed solution fits into the project. Code Contribution Guidelines When contributing code, please follow these guidelines:
File Naming Use descriptive names for files that clearly represent the data structure or algorithm implemented. Example: BinarySearchTree.java, QuickSort.java Coding Style Follow standard Java conventions: Use camelCase for variables and methods. Use PascalCase for class names. Avoid unnecessary comments, but document complex logic. Indentation: 4 spaces, no tabs. Limit each line to a maximum of 100 characters. Ensure proper JavaDocs are included for all methods and classes. Testing Every new data structure or algorithm must have corresponding unit tests. Use JUnit 5 (or specify if you prefer another testing framework). Tests should cover edge cases and expected behavior. Commit Messages Use clear, concise commit messages: Example: Added QuickSort algorithm with tests or Fixed issue in LinkedList implementation If your commit relates to an open issue, reference the issue number. Pull Request Process Fork the repository and create a new branch for your feature or bug fix.
Branch naming convention: feature/algorithm-name or fix/issue-description Make sure your changes do not break existing functionality.
Run all tests before submitting the PR. Submit a pull request with:
A clear description of your changes. References to relevant issues, if any. Your PR will be reviewed, and feedback might be provided. Please be responsive to review comments.
License By contributing to this repository, you agree that your contributions will be licensed under the LICENSE file in the repository.