Contributing¶
Getting Started¶
- Fork the repository
- Clone your fork:
- Create a branch:
Development Setup¶
Code Quality¶
Backend — Ruff¶
cd document-parser
uv run ruff check . # lint
uv run ruff check . --fix # auto-fix
uv run ruff format . # format
Frontend — TypeScript + ESLint + Prettier¶
cd frontend
npm run type-check # vue-tsc strict mode
npx eslint src/ # lint
npx prettier --check src/ # check formatting
npx prettier --write src/ # auto-format
Running Tests¶
# Generate test PDFs + start stack (if not already running)
python e2e/generate-test-data.py
docker compose up -d --wait
# Run critical UI tests (CI scope)
mvn test -f e2e/ui/pom.xml -Dkarate.options="--tags @critical"
# Run all UI tests (local scope)
mvn test -f e2e/ui/pom.xml -Dkarate.options="--tags @ui"
All tests must pass before submitting a PR.
Pull Request Guidelines¶
- Keep PRs focused — one feature or fix per PR
- Add tests for new functionality
- Update documentation if behavior changes
- Ensure CI passes (lint + type-check + tests + build)
License¶
By contributing, you agree that your contributions will be licensed under the MIT License.