Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
-
Prerequisites
- Go 1.21 or later
- Docker and Docker Compose
- MongoDB 6.0+
- Redis 7.0+
- Git
-
Clone the repository
git clone https://github.com/SynthoraAI-AI-News-Content-Curator/Realtime-Stream-Processor.git cd Realtime-Stream-Processor -
Install dependencies
make install
-
Set up environment
cp .env.example .env # Edit .env with your configuration -
Start development environment
make dev
- Follow Effective Go guidelines
- Use
gofmtfor formatting - Run
make lintbefore committing - Write meaningful commit messages
- Write tests for all new features
- Ensure all tests pass:
make test - Add integration tests where appropriate
- Maintain test coverage above 80%
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
- Write clean, documented code
- Add tests for new functionality
- Update documentation as needed
-
Run checks
make lint make test make build -
Commit your changes
git commit -m "feat: add amazing feature"We follow Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation changestest:Test additions/changesrefactor:Code refactoringperf:Performance improvementschore:Maintenance tasks
-
Push and create PR
git push origin feature/amazing-feature
-
PR Requirements
- Clear description of changes
- Reference related issues
- Pass all CI checks
- Get at least one approval
- Keep PRs focused and reasonably sized
- Reviews typically happen within 2-3 business days
- Address all feedback promptly
- Be respectful and constructive
- Ask questions if feedback is unclear
When reporting issues, please include:
- Description: Clear description of the issue
- Steps to Reproduce: Detailed steps to reproduce
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Environment: OS, Go version, etc.
- Logs: Relevant error logs or stack traces
We welcome feature requests! Please:
- Check if the feature already exists
- Provide a clear use case
- Explain the expected benefit
- Be open to discussion and alternatives
- Be respectful and inclusive
- Follow our Code of Conduct
- Help others in discussions
- Share knowledge and learn together
By contributing, you agree that your contributions will be licensed under the MIT License.
Feel free to reach out:
- Open an issue for bug reports or features
- Join our discussions for general questions
- Email: hoangson091104@gmail.com
Thank you for contributing to SynthoraAI! 🚀