Getting Started
Fork the Repository
Fork the OddsEngine repository to your GitHub account.
Branch Strategy
We follow a structured branching model:main: Production-ready codedevelop: Integration branch for featuresfeature/*: New features (e.g.,feature/probability-calculator)bugfix/*: Bug fixes (e.g.,bugfix/api-timeout)hotfix/*: Critical production fixes
Creating a Branch
Making Changes
Code Standards
- Follow PEP 8 style guidelines for Python code
- Write clear, descriptive variable and function names
- Add docstrings to all functions and classes
- Keep functions focused and modular
- Comment complex logic
Testing Requirements
Before submitting your contribution:Run Local Tests
Run Local Tests
Test Your Changes
Test Your Changes
- Test your changes locally with Docker:
- Verify functionality in the UI
- Test edge cases and error scenarios
Code Quality
Code Quality
- Run linting checks
- Ensure no unnecessary dependencies are added
- Check for security vulnerabilities
Commit Guidelines
Commit Message Format
Use clear, descriptive commit messages:feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Pull Request Process
Create Pull Request
- Go to the OddsEngine repository on GitHub
- Click “New Pull Request”
- Select your branch to merge into
develop - Fill out the PR template
PR Checklist
Complete the checklist in the PR template:
- Tested changes locally
- Updated documentation if applicable
- All tests pass
- Code follows style guidelines
- Related issue is linked
Code Review
- Wait for review from team members
- Address feedback and requested changes
- Push updates to your branch (PR auto-updates)
Reporting Issues
Bug Reports
Use our bug report template to report bugs:- Provide clear description of the problem
- Include steps to reproduce
- Specify expected vs actual results
- Add screenshots or logs if applicable
Feature Requests
Use our feature request template:- Describe the functionality clearly
- Explain the use case and benefits
- Include acceptance criteria
Development Stack
Understanding our technology stack will help you contribute effectively:Frontend
- PyQt with QtDesigner
- Responsive UI design
Backend
- Python 3.10+
- Pandas for data analysis
- Tennis API integration
Database
- Oracle Database
- Historical data tracking
DevOps
- GitHub Actions CI/CD
- Docker containerization
- SonarQube for quality
Getting Help
If you need assistance:- Check existing GitHub Issues
- Review the project wiki
- Contact the team:
- Scrum Master: David Orjuela (@Kerosene21)
- Product Owner: Juan Pablo Álvarez (@Sleppyhed)
- Configuration Manager: Nicolás Sánchez (@nicosanlucon)
Code of Conduct
- Be respectful and constructive in discussions
- Focus on collaboration and learning
- Follow academic integrity guidelines
- Respect the SCRUM process and team roles
This project is developed as part of the Fundamentos de Ingeniería de Software course at Pontificia Universidad Javeriana (2026).