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.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- 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
- Use the feature request template
- Provide a clear and detailed explanation of the feature
- Include any relevant examples or mockups
- Fork the repo and create your branch from
main
- If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code follows our style guidelines
- Issue that pull request!
- 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
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes:
- Write meaningful commit messages
- Follow our coding standards
- Add tests for new features
- Update documentation as needed
- Push your changes:
git push origin feature/your-feature-name
- 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
- 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
- Use Markdown for documentation
- Include code examples where relevant
- Keep language clear and concise
- Update README.md if needed
- Document all new features
- Write unit tests for new features
- Ensure all tests pass before submitting PR
- Use pytest for testing
- Aim for high test coverage
- Consider performance implications of changes
- Profile code when necessary
- Document any performance-critical code
- Consider resource constraints
- Only add necessary dependencies
- Keep dependencies up to date
- Document new dependencies in README
- Consider compatibility across platforms
- Join our Discussions
- Help others in the community
- Share your ideas and feedback
- Be respectful and constructive
Feel free to contact the maintainer:
- Saqlain Razee (saqlainrazee@gmail.com)
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to DisasterConnect! 🙏