No description
Find a file
Vadym Samoilenko fc6f4a12e6 Phase 2+3: FastAPI backend + multi-tenancy schema
Backend (replaces PHP api.php + auth.php):
- FastAPI app with routers: jobs, auth, billing
- Supabase JWT authentication in deps.py
- Celery + Redis job queue (process_pdf_task)
- MinIO S3-compatible storage service
- PDF checker wrapper (delegates to enterprise_pdf_checker.py)
- Stripe billing: checkout, portal, webhook handler

Multi-tenancy (Phase 3):
- Alembic migration 001: workspaces, workspace_members, jobs, usage_events
- Row-Level Security on all tenant tables via app.workspace_id session var
- Monthly quota enforcement per workspace (402 on exceeded)
- Plan tiers: free(5) / pro(100) / business(unlimited)

Config:
- pydantic-settings based config.py (no hardcoded values)
- docker-compose.yml rewritten: postgres, redis, minio, api, celery

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 14:46:05 +01:00
backend Phase 2+3: FastAPI backend + multi-tenancy schema 2026-05-19 14:46:05 +01:00
css Phase 1: De-Oliver rebrand — remove Azure AD, GCP, Oliver branding 2026-05-19 14:41:27 +01:00
db Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
docs_req Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
js Phase 1: De-Oliver rebrand — remove Azure AD, GCP, Oliver branding 2026-05-19 14:41:27 +01:00
README's Phase 1: De-Oliver rebrand — remove Azure AD, GCP, Oliver branding 2026-05-19 14:41:27 +01:00
Test_files Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
tests Phase 1: De-Oliver rebrand — remove Azure AD, GCP, Oliver branding 2026-05-19 14:41:27 +01:00
.dockerignore Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
.env.example Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
.gitignore Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
CLAUDE.md Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
cleanup.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
cloudrun_service.py Phase 1: De-Oliver rebrand — remove Azure AD, GCP, Oliver branding 2026-05-19 14:41:27 +01:00
create_test_pdf_with_images.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
db_manager.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
docker-compose.prod.yml Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
docker-compose.yml Phase 2+3: FastAPI backend + multi-tenancy schema 2026-05-19 14:46:05 +01:00
enterprise_pdf_checker.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
ENTERPRISE_ROADMAP.md Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
logger_config.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
pdf_remediation.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
pytest.ini Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
README.md Phase 1: De-Oliver rebrand — remove Azure AD, GCP, Oliver branding 2026-05-19 14:41:27 +01:00
redis_queue.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
report_generator.py Phase 1: De-Oliver rebrand — remove Azure AD, GCP, Oliver branding 2026-05-19 14:41:27 +01:00
requirements-cloudrun.txt Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
requirements.txt Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
retry_helper.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
test_env.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00
worker.py Initial commit: PDF Accessibility SaaS (forked from Oliver/pdf-accessibility) 2026-05-19 14:34:12 +01:00

Aimpress PDF Accessibility

WCAG 2.1 AA compliance checking for PDFs — web-based, AI-powered, self-service.

EU Accessibility Act (June 2025) requires banks, e-commerce, e-learning, and government to provide accessible PDF documents. This product automates the audit process.

Features

  • 30+ WCAG 2.1 AA / PDF/UA-1 checks
  • AI-powered alt-text validation (Claude Sonnet + Google Vision)
  • Color contrast checking (1.4.3 AA + 1.4.6 AAA)
  • Auto-remediation (title, language, tags, bookmarks)
  • Visual Page Inspector — SVG overlay of issues on rendered pages
  • Multi-language support (50+ languages)
  • Detailed HTML/JSON/PDF reports with Matterhorn Protocol checkpoints
  • Team workspaces with role-based access

Tech Stack

Layer Technology
Backend FastAPI + Python 3.12
Frontend Next.js 15 + shadcn/ui + Tailwind
Auth Supabase Auth
Database PostgreSQL 16 + RLS
Queue Celery + Redis
Storage MinIO (S3-compatible)
Deploy Docker Compose + Caddy

Local Development

cp .env.example .env
# Fill in ANTHROPIC_API_KEY + SUPABASE_* values

docker compose up -d postgres redis minio
cd backend && uv sync && uv run uvicorn app.main:app --reload
cd frontend && npm install && npm run dev

Pricing

Plan PDFs/month Auto-fix API Team
Free 5
Pro $29/mo 100
Business $149/mo Unlimited

Deployment

See docker-compose.prod.yml for production setup with Caddy auto-SSL.