Thank you for your interest in contributing to the Sora Video Generator! We welcome contributions from the community and are excited to see what you can bring to the project.
If you find a bug or have a feature request:
- Search existing issues first to avoid duplicates
- Create a new issue with a clear title and description
- Include relevant details:
- Steps to reproduce (for bugs)
- Expected vs. actual behavior
- Environment details (OS, Java version, etc.)
- Screenshots or logs if applicable
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/sora-video-generator.git cd sora-video-generator -
Set up development environment:
# Copy environment template cp .env.example .env # Edit .env with your Azure OpenAI credentials
-
Install dependencies and run tests:
./mvnw clean test -
Run the application locally:
./mvnw spring-boot:run
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes following our coding standards (see below)
-
Add or update tests for your changes
-
Run tests to ensure everything works:
./mvnw clean test -
Test locally with Docker:
docker build -t sora-video-generator . docker run -p 8080:8080 sora-video-generator -
Commit your changes:
git add . git commit -m "feat: add your feature description"
-
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub
- Follow standard Java naming conventions
- Use meaningful variable and method names
- Write self-documenting code with minimal comments
- Keep methods focused and under 50 lines when possible
- Use dependency injection properly with Spring
- Place related functionality in appropriate packages
- Keep controllers thin - business logic belongs in services
- Use DTOs for API requests/responses
- Implement proper error handling and logging
- Update README.md for significant feature additions
- Add JavaDoc for public methods and classes
- Include inline comments for complex logic
- Update API documentation for new endpoints
- Write unit tests for new functionality
- Maintain or improve test coverage
- Test error scenarios and edge cases
- Include integration tests for API endpoints
- Minimize external dependencies
- Use Spring Boot starters when possible
- Keep dependency versions up to date
- Justify any new dependencies in PR description
- Never commit API keys or sensitive data
- Use environment variables for configuration
- Follow Azure security best practices
- Validate all user inputs
- Use reactive programming patterns where appropriate
- Implement proper caching strategies
- Monitor memory usage and optimize if needed
- Use async processing for long-running operations
-
Ensure your PR:
- Has a clear title and description
- References related issues
- Includes tests for new functionality
- Passes all existing tests
- Follows coding standards
-
PR Review Process:
- Maintainers will review your PR
- Address any feedback or requested changes
- Keep your branch up to date with main
- Be responsive to questions and suggestions
-
Merge Requirements:
- All tests must pass
- Code review approval required
- No merge conflicts
- Documentation updated if needed
We welcome various types of contributions:
- Fix existing functionality
- Improve error handling
- Resolve performance issues
- Video generation enhancements
- New API endpoints
- UI/UX improvements
- Integration with other Azure services
- README improvements
- Code comments and JavaDoc
- API documentation
- Troubleshooting guides
- Unit test improvements
- Integration tests
- Load testing
- Security testing
- Docker improvements
- Azure Bicep enhancements
- CI/CD pipeline improvements
- Monitoring and logging
- Spring Boot Documentation
- Azure OpenAI Documentation
- Azure Container Apps Documentation
- Project Issues
If you need help with contributing:
- Check existing documentation
- Search closed issues for similar questions
- Create a new issue with the "question" label
- Join community discussions
Contributors will be recognized in:
- README.md contributors section
- Release notes for significant contributions
- GitHub contributor statistics
Thank you for helping make Sora Video Generator better! 🚀