Skip to content

Latest commit

 

History

History
131 lines (94 loc) · 3.68 KB

CONTRIBUTING.md

File metadata and controls

131 lines (94 loc) · 3.68 KB

Contributing to DisasterConnect 🚀

First off, thanks for taking the time to contribute! 🎉👍

The following is a set of guidelines for contributing to DisasterConnect. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

📝 Code of Conduct

This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.

🌟 How Can I Contribute?

🐛 Reporting Bugs

  • Use the GitHub issue tracker
  • Check if the bug has already been reported
  • Use the bug report template when creating an issue
  • Include as many details as possible:
    • Steps to reproduce
    • Expected behavior
    • Actual behavior
    • Screenshots if applicable
    • Your environment details

💡 Suggesting Enhancements

  • Use the feature request template
  • Provide a clear and detailed explanation of the feature
  • Include any relevant examples or mockups

🔧 Pull Requests

  1. Fork the repo and create your branch from main
  2. If you've added code that should be tested, add tests
  3. If you've changed APIs, update the documentation
  4. Ensure the test suite passes
  5. Make sure your code follows our style guidelines
  6. Issue that pull request!

💻 Development Process

  1. Set up your development environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install -r requirements-dev.txt  # Development dependencies
  1. Create a new branch:
git checkout -b feature/your-feature-name
  1. Make your changes:
  • Write meaningful commit messages
  • Follow our coding standards
  • Add tests for new features
  • Update documentation as needed
  1. Push your changes:
git push origin feature/your-feature-name

📋 Style Guidelines

💭 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

🐍 Python Style Guide

  • Follow PEP 8
  • Use meaningful variable names
  • Add docstrings to all functions and classes
  • Keep functions focused and small
  • Use type hints where possible
  • Maximum line length: 120 characters

📚 Documentation Style

  • Use Markdown for documentation
  • Include code examples where relevant
  • Keep language clear and concise
  • Update README.md if needed
  • Document all new features

🧪 Testing

  • Write unit tests for new features
  • Ensure all tests pass before submitting PR
  • Use pytest for testing
  • Aim for high test coverage

⚡ Performance Guidelines

  • Consider performance implications of changes
  • Profile code when necessary
  • Document any performance-critical code
  • Consider resource constraints

📦 Dependency Management

  • Only add necessary dependencies
  • Keep dependencies up to date
  • Document new dependencies in README
  • Consider compatibility across platforms

🤝 Community

  • Join our Discussions
  • Help others in the community
  • Share your ideas and feedback
  • Be respectful and constructive

❓ Questions?

Feel free to contact the maintainer:

📜 License

By contributing, you agree that your contributions will be licensed under the MIT License.


Thank you for contributing to DisasterConnect! 🙏