Thank you for your interest in contributing to Blockbusterr! This guide will help you get started.
- Report bugs - Found something broken? Let us know!
- Suggest features - Have an idea? We'd love to hear it!
- Submit pull requests - Code contributions are always welcome
- Improve documentation - Help others understand Blockbusterr better
- Share your config - Show others how you're using Blockbusterr
- Go 1.21 or higher
- Docker (optional, for testing)
- Git
-
Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/blockbusterr.git cd blockbusterr -
Install dependencies
make install
-
Copy config template
cp config/config.example.yaml config/config.yaml
-
Build and run
make build make dev
The application will be available at
http://localhost:9090
make help # Show all available commands
make build # Build the application binary
make dev # Run the application in development mode
make test # Run all tests
make test-verbose # Run tests with verbose output
make lint # Run linter
make fmt # Format code
make check # Run fmt, vet, and lint-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clear, concise commit messages
- Follow existing code style and conventions
- Add tests for new functionality
- Update documentation if needed
-
Test your changes
make test make check -
Commit your changes
git add . git commit -m "feat: add awesome new feature"
-
Push to your fork
git push origin feature/your-feature-name
-
Open a Pull Request
- Provide a clear description of the changes
- Reference any related issues
- Include screenshots for UI changes
- Ensure all checks pass
When reporting bugs, please include:
- Environment details (OS, Docker version, Go version)
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Logs (if applicable)
- Configuration (sanitize sensitive data!)
Use the Bug Report template when creating an issue.
We love new ideas! When requesting features:
- Check existing issues to avoid duplicates
- Describe the problem you're trying to solve
- Explain your proposed solution
- Consider alternatives you've thought about
- Describe any additional context that might be helpful
Use the Feature Request template when creating an issue.
blockbusterr/
├── cmd/ # Application entrypoints
│ └── app/ # Main application
├── internal/ # Internal application code
│ ├── aggregator/ # Data aggregation logic
│ ├── database/ # Database interactions
│ ├── filters/ # Content filtering
│ ├── integrations/ # External service integrations
│ ├── rest/ # REST API handlers
│ ├── scoring/ # Content scoring algorithms
│ └── services/ # Background jobs and services
├── config/ # Configuration files
├── web/templates/ # HTML templates
└── docs/ # Documentation site
- Write tests for new functionality
- Ensure existing tests pass:
make test - Run tests with coverage:
make test-coverage - Test edge cases and error conditions
If your PR adds or changes functionality:
- Update the relevant documentation in
/docs/src/content/docs/ - Update code comments for public APIs
- Update the README if needed
- Add examples where appropriate
- Be respectful and inclusive
- Welcome newcomers
- Accept constructive criticism
- Focus on what's best for the community
- Show empathy towards others
- Open a Discussion
- Check existing Issues
- Read the Documentation
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Blockbusterr!