Metadata-Version: 2.4
Name: docreview360
Version: 0.1.3a0
Summary: DocReview360 simplifies document workflows with approvals and templates.
Author-email: Eric Putnam <docreview360@putnamgroup.org>
License-Expression: MIT
Project-URL: Homepage, https://github.com/eputnam77/DocReview360
Project-URL: Repository, https://github.com/eputnam77/DocReview360
Project-URL: Issues, https://github.com/eputnam77/DocReview360/issues
Project-URL: Changelog, https://github.com/eputnam77/DocReview360/blob/main/CHANGELOG.md
Keywords: document-review,workflow,approvals,audit-trail,fastapi,compliance
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business :: Groupware
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Typing :: Typed
Requires-Python: <3.13,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Jinja2==3.1.6
Requires-Dist: pydantic==2.13.3
Requires-Dist: matplotlib==3.10.8
Requires-Dist: fonttools==4.62.1
Requires-Dist: Pillow==12.2.0
Requires-Dist: click==8.1.8
Requires-Dist: PyYAML==6.0.3
Requires-Dist: zipp==3.19.1
Requires-Dist: wikipedia==1.4.0
Requires-Dist: textstat==0.7.13
Requires-Dist: textblob==0.19.0
Requires-Dist: fastapi>=0.120.0
Requires-Dist: python-multipart==0.0.26
Requires-Dist: SQLAlchemy==2.0.41
Requires-Dist: httpx==0.28.1
Requires-Dist: python-jose[cryptography]==3.5.0
Requires-Dist: python-docx==1.2.0
Requires-Dist: python-magic==0.4.27; platform_system != "Windows"
Requires-Dist: python-magic-bin; platform_system == "Windows"
Requires-Dist: reportlab==4.4.10
Requires-Dist: celery==5.6.3
Requires-Dist: redis==6.2.0
Requires-Dist: graphene==3.4.3
Requires-Dist: prometheus-client==0.22.1
Requires-Dist: starlette<1.1,>=0.49
Requires-Dist: uvicorn>=0.38.0
Requires-Dist: pymysql==1.1.1
Requires-Dist: python-dotenv==1.2.2
Requires-Dist: bcrypt==4.2.0
Requires-Dist: pyotp==2.9.0
Requires-Dist: markdown-it-py==3.0.0
Requires-Dist: bleach==6.3.0
Provides-Extra: fedstylevalidator
Requires-Dist: fedstylevalidator>=0.1.1; extra == "fedstylevalidator"
Provides-Extra: tokenizer
Requires-Dist: tiktoken>=0.5.1; extra == "tokenizer"
Provides-Extra: postgres
Requires-Dist: psycopg[binary]==3.3.3; extra == "postgres"
Provides-Extra: ldap
Requires-Dist: ldap3>=2.9; extra == "ldap"
Provides-Extra: saml
Requires-Dist: python3-saml>=1.16; extra == "saml"
Provides-Extra: webauthn
Requires-Dist: webauthn>=2.0; extra == "webauthn"
Provides-Extra: alembic
Requires-Dist: alembic>=1.14; extra == "alembic"
Provides-Extra: mssql
Requires-Dist: pyodbc>=5.0; extra == "mssql"
Provides-Extra: oracle
Requires-Dist: oracledb>=2.0; extra == "oracle"
Provides-Extra: otel
Requires-Dist: opentelemetry-sdk>=1.24; extra == "otel"
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.24; extra == "otel"
Provides-Extra: realtime
Requires-Dist: y-py<0.8,>=0.6; extra == "realtime"
Requires-Dist: ypy-websocket<0.14,>=0.12; extra == "realtime"
Provides-Extra: ml
Requires-Dist: torch==2.11.0; extra == "ml"
Requires-Dist: onnx==1.21.0; extra == "ml"
Provides-Extra: ml-cpu
Requires-Dist: onnxruntime==1.19.2; (platform_system != "Darwin" or platform_machine != "arm64") and extra == "ml-cpu"
Provides-Extra: ml-mps
Requires-Dist: onnxruntime==1.19.2; (platform_system == "Darwin" and platform_machine == "arm64") and extra == "ml-mps"
Provides-Extra: ml-gpu
Requires-Dist: onnxruntime-gpu==1.25.0; platform_system != "Darwin" and extra == "ml-gpu"
Provides-Extra: format
Requires-Dist: ruff>=0.5; extra == "format"
Requires-Dist: black>=26.3.1; extra == "format"
Provides-Extra: lint
Requires-Dist: ruff>=0.5; extra == "lint"
Requires-Dist: black>=26.3.1; extra == "lint"
Provides-Extra: typing
Requires-Dist: mypy>=1.10; extra == "typing"
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: pytest-cov>=5; extra == "test"
Requires-Dist: hypothesis>=6; extra == "test"
Requires-Dist: pytest-asyncio>=0.23; extra == "test"
Requires-Dist: pytest-playwright>=0.4; extra == "test"
Requires-Dist: playwright>=1.44; extra == "test"
Requires-Dist: mutmut>=2.4; extra == "test"
Requires-Dist: uvicorn>=0.38.0; extra == "test"
Provides-Extra: security
Requires-Dist: bandit[toml]>=1.8.5; extra == "security"
Requires-Dist: semgrep>=1.123.0; extra == "security"
Requires-Dist: pip-audit>=2.7; extra == "security"
Provides-Extra: qa
Requires-Dist: pre-commit>=3.7; extra == "qa"
Provides-Extra: release
Requires-Dist: build>=1.2; extra == "release"
Requires-Dist: twine>=5; extra == "release"
Provides-Extra: dev
Requires-Dist: ruff>=0.5; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pytest-cov>=5; extra == "dev"
Requires-Dist: hypothesis>=6; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
Requires-Dist: pytest-playwright>=0.4; extra == "dev"
Requires-Dist: playwright>=1.44; extra == "dev"
Requires-Dist: mutmut>=2.4; extra == "dev"
Requires-Dist: bandit[toml]>=1.8.5; extra == "dev"
Requires-Dist: semgrep>=1.123.0; extra == "dev"
Requires-Dist: pip-audit>=2.7; extra == "dev"
Requires-Dist: pre-commit>=3.7; extra == "dev"
Requires-Dist: uvicorn>=0.38.0; extra == "dev"
Requires-Dist: ldap3>=2.9; extra == "dev"
Requires-Dist: python3-saml>=1.16; extra == "dev"
Requires-Dist: webauthn>=2.0; extra == "dev"
Dynamic: license-file

# DocReview360

DocReview360 is a document review app with a FastAPI backend, a React frontend, and a CLI. It helps teams route documents through review, approvals, and audit logging.

## Alpha release

The current PyPI release is an alpha package. It includes the Python backend, the `docreview360` CLI, and a bundled copy of the Next.js frontend source for alpha testing.

```bash
python -m pip install --pre docreview360
python -m pip install --pre "docreview360[fedstylevalidator]"
docreview360 frontend extract ./docreview360-frontend
```

Use the `fedstylevalidator` extra when you want the published Federal Style Validator package from PyPI.

## Quick start

Requirements:

- Python 3.11 or 3.12
- Node 18+ for the frontend
- `uv` recommended for environment management

Backend:

```bash
git clone https://github.com/eputnam77/DocReview360.git
cd DocReview360
uv venv --python 3.12
source .venv/bin/activate
uv pip install -e ".[dev,test,security]"
DOCREVIEW360_ENV=dev python -m uvicorn docreview360.api:app --reload --host 0.0.0.0 --port 8000
```

Frontend:

```bash
cd frontend
npm install --legacy-peer-deps
printf "NEXT_PUBLIC_API_BASE=http://localhost:8000\n" > .env.local
npm run dev
```

Windows PowerShell:

```powershell
uv venv --python 3.12
.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev,test,security]"
$env:DOCREVIEW360_ENV="dev"
python -m uvicorn docreview360.api:app --reload --host 0.0.0.0 --port 8000
```

Log in with `alice` / `password` or `bob` / `password` in local development.

For the full setup flow, see [docs/getting_started.md](docs/getting_started.md).

## Install options

Install from source for full-stack development:

```bash
uv pip install -e ".[dev,test,security]"
```

Install the alpha package from PyPI:

```bash
python -m pip install --pre docreview360
```

Need a plain `venv` flow instead of `uv`? See [docs/getting_started.md](docs/getting_started.md).

## Configuration

Keep the README focused. Use the docs for configuration detail.

- Environment variables: [docs/environment_variables.md](docs/environment_variables.md)
- Settings reference: [docs/settings.md](docs/settings.md)
- Deployment guide: [docs/deployment.md](docs/deployment.md)
- CLI reference: [docs/cli.md](docs/cli.md)

Run the setup wizard to generate `docreview360.yaml`:

```bash
docreview360 init
```

## Testing and quality

Quality checks, security scans, and E2E commands now live in one place:

- [docs/testing_and_quality.md](docs/testing_and_quality.md)

## Product notes

- Existing endpoints remain available without a prefix.
- Versioned aliases are supported at `/api/v1/*`.
- AI assistance is optional.
- The app is not legal advice and is not positioned as a certified regulatory compliance system.

Performance baseline details live in [docs/performance_baseline.md](docs/performance_baseline.md).

## Packaging and release

Release packaging details live in [docs/release_packaging.md](docs/release_packaging.md).

## More docs

- API overview: [docs/api_overview.md](docs/api_overview.md)
- Developer guide: [docs/developer.md](docs/developer.md)
- E2E guide: [docs/e2e.md](docs/e2e.md)
- Federal Style Validator: [docs/federal-style-validator.md](docs/federal-style-validator.md)
- Operations and deployment: [docs/deployment.md](docs/deployment.md)

## Governance

- Terms: [TERMS.md](TERMS.md)
- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)
- Code of conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
- License: [LICENSE](LICENSE)
