Contributing

We welcome contributions to NotiHub! Whether you’re fixing bugs, adding new features, or improving documentation, your help is appreciated.

Development Workflow

  1. Fork the repository on GitHub

  2. Create a feature branch from main

  3. Make your changes following the existing code style

  4. Add tests for new functionality

  5. Update documentation if needed

  6. Run the test suite to ensure nothing is broken

  7. Submit a pull request with a clear description

Code Style Guidelines

  • Follow PEP 8 style guidelines

  • Use type hints for all function parameters and return values

  • Write docstrings for all public classes and methods

  • Keep line length under 90 characters

  • Use dataclasses for configuration objects

  • Implement proper error handling and logging

Adding New Providers

When adding a new notification provider:

  1. Follow the step-by-step guide in the “Adding New Notifiers” section

  2. Ensure all abstract methods are implemented

  3. Add comprehensive unit tests

  4. Update this documentation

  5. Add configuration examples to README.md

Testing Requirements

  • Minimum 85% test coverage

  • Unit tests for all public methods

  • Integration tests for external service calls (mocked)

  • Error handling tests

  • Edge case testing