Thanks for your interest in contributing. This document covers the practical details.
git clone https://github.com/AshayK003/DiffIQ.git
cd DiffIQ
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
pip install -e ".[dev]"Verify everything works:
pytest tests/ -v # all tests pass
streamlit run app.py # dashboard launches- Create a branch from
master:git checkout -b feature/my-change - Make your changes
- Add or update tests
- Run
pytest tests/ -v— all tests must pass - Commit and push
- Open a pull request
Check open issues for planned work. Good First Issues are tagged for new contributors.
- Comment on an issue to claim it before starting work
- I'll assign you within 24h
- First-come-first-served — if two PRs arrive for the same issue, I merge the assignee's and close the duplicate with context
- Follow existing style in the file you're editing
- Use
loggingmodule for debug/info output - Keep imports sorted: stdlib, third-party, local
- Type hints are encouraged but not required
- Core logic lives in
src/ - Streamlit UI is in
app.py - Tests mirror the source structure in
tests/
- Test files go in
tests/ - Name tests
test_<module>.py - Use
pytestfixtures fromconftest.py - Write behavior-focused tests, not implementation tests
Coverage reports upload as CI artifacts on every push. Download them:
- Go to the Actions tab on GitHub
- Select the latest workflow run
- Scroll to Artifacts section
- Download
coverage-report-html.zip
To generate locally:
pytest tests/ --cov=src --cov-report=html
# Open htmlcov/index.html in your browserUse short imperative descriptions:
add filing classification for audit reports
fix PDF extraction on multi-page documents
add sector filter to dashboard
improve error handling for BSE API timeouts
- Keep PRs focused — one change per PR (target ≤200 lines changed)
- Include a description of what changed and why
- Reference related issues
- Small PRs get reviewed and merged faster
Open an issue or start a discussion on GitHub.