Thank you for considering contributing to this project! 🎉
We welcome contributions of all kinds: bug reports, feature requests, documentation improvements, and code contributions.
- Python 3.11 or higher
- Git
- A GitHub account
-
Fork the repository
- Click the "Fork" button at the top right of the repository page
- This creates your own copy of the repository
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/codebase-problem-scrapper.git cd codebase-problem-scrapper -
Add upstream remote
git remote add upstream https://github.com/AVPthegreat/codebase-problem-scrapper.git
-
Create a virtual environment
python3 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies
pip install -e '.[dev]'
git checkout -b feature/your-feature-name
# or for bug fixes
git checkout -b fix/bug-descriptionBranch naming conventions:
feature/- New featuresfix/- Bug fixesdocs/- Documentation updatesrefactor/- Code refactoringtest/- Adding or updating tests
- Write clean, readable code
- Follow existing code style and conventions
- Add comments where necessary
- Update documentation if needed
Run tests:
pytest tests/Run the web app locally:
python scripts/run_web.pyThen test at http://127.0.0.1:8000
Check code style:
ruff check src/ tests/Use clear, descriptive commit messages:
git add .
git commit -m "feat: add support for HackerRank scraper"
# or
git commit -m "fix: resolve timeout issue in Codeforces scraper"
# or
git commit -m "docs: update README with deployment instructions"Commit message prefixes:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
git push origin feature/your-feature-name- Go to your fork on GitHub
- Click "Pull Request" button
- Select your feature branch
- Provide a clear title and description:
- What changes did you make?
- Why are these changes needed?
- How did you test them?
- Submit the Pull Request
- Follow PEP 8 guidelines
- Use type hints where appropriate
- Keep functions small and focused
- Write docstrings for classes and functions
- Add tests for new features
- Ensure existing tests pass
- Aim for good test coverage
- Update README.md if adding new features
- Add docstrings to new functions/classes
- Comment complex logic
- Fix typos or improve documentation
- Add tests for existing code
- Improve error messages
- Add type hints
- Support for additional coding platforms
- Improved problem filtering
- Better test case generation
- UI/UX improvements
- Export formats (PDF, Markdown, etc.)
If you find a bug, please create an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python version)
- Error messages or logs
- Maintainers will review your PR
- Address any requested changes
- Once approved, your PR will be merged
- Your contribution will be credited in the repository
Feel free to:
- Open an issue for questions
- Start a discussion in the repository
- Reach out to maintainers
Every contribution, no matter how small, helps make this project better!