Skip to content

Latest commit

 

History

History
217 lines (137 loc) · 3.85 KB

File metadata and controls

217 lines (137 loc) · 3.85 KB

Contributing Guide

Thank you for your interest in contributing to the Recursive Sorting Algorithm Visualizer!

Whether you are fixing bugs, improving the visualization, optimizing recursive algorithms, or enhancing the documentation, your contributions are welcome.


Ways to Contribute

You can contribute in many ways, including:

  • Fixing bugs
  • Improving code quality
  • Optimizing recursive implementations
  • Adding new recursive sorting algorithms
  • Improving the terminal interface
  • Enhancing animations
  • Improving documentation
  • Adding unit tests
  • Reporting issues
  • Suggesting new features

Before You Start

Before making changes, please:

  1. Search existing Issues to avoid duplicate work.
  2. Open an Issue if you plan to introduce a major feature or redesign.
  3. Keep changes focused on a single purpose whenever possible.

Getting Started

1. Fork the Repository

Create your own copy of the repository by clicking Fork.

2. Clone Your Fork

git clone https://github.com/your-username/recursive-sorting-visualizer.git

3. Navigate to the Project

cd recursive-sorting-visualizer

4. Create a Branch

Choose a descriptive branch name.

git checkout -b feature/your-feature-name

Examples:

feature/heap-improvements
feature/new-algorithm
bugfix/quick-sort
docs/readme-update

Development Guidelines

Code Style

Please keep the code:

  • Clean
  • Readable
  • Well documented
  • Modular
  • Consistent with the existing project structure

Recursion First

The primary goal of this project is demonstrating recursive algorithms.

Whenever possible:

  • Prefer recursion over iterative loops.
  • Preserve the educational nature of the implementation.
  • Clearly document any recursive logic.

Documentation

Documentation improvements are always appreciated.

Examples include:

  • README updates
  • Code comments
  • Better function documentation
  • Examples
  • Tutorials

Testing

Before submitting your changes:

  • Verify the program runs without errors.
  • Test every modified algorithm.
  • Ensure visualization still functions correctly.
  • Confirm benchmark statistics remain accurate.

Commit Messages

Write concise and descriptive commit messages.

Examples:

Add recursive Shell Sort implementation

Improve Merge Sort visualization

Fix Quick Sort partition bug

Update README installation guide

Refactor animation rendering

Pull Requests

Before submitting a Pull Request, make sure:

  • Your code builds successfully.
  • You tested your changes.
  • Documentation is updated when necessary.
  • The Pull Request clearly explains the purpose of the change.

Include:

  • Summary of changes
  • Reason for the change
  • Screenshots or GIFs if the UI or visualization changes

Reporting Bugs

When reporting a bug, please include:

  • Operating system
  • Python version
  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • Error messages or screenshots, if available

Feature Requests

Feature requests are welcome.

Please describe:

  • The proposed feature
  • Why it would improve the project
  • Possible implementation ideas

Project Goals

This project aims to:

  • Demonstrate recursive sorting algorithms
  • Teach algorithm visualization
  • Compare algorithm performance
  • Maintain clean, educational Python code
  • Remain lightweight and dependency-free

Contributions should support one or more of these goals.


Code of Conduct

Please be respectful and constructive.

We encourage:

  • Friendly discussions
  • Helpful feedback
  • Respectful collaboration
  • Clear communication

Harassment, abusive behavior, or discriminatory language will not be tolerated.


Thank You

Your time and effort help improve this project for everyone. Every contribution, whether it is code, documentation, bug reports, or ideas, is greatly appreciated.

Happy coding!