- AGENTS.md: canonical project entry point (Quick Nav, pipeline, constraints) - docs/: complete docs tree — architecture, API spec, DB schema, infra, runbook, requirements, tech stack, principles, reference ADRs, guides, tasks backlog, testing strategy - tests/README.md: test commands, structure, known gaps - README.md / CLAUDE.md / DEPLOYMENT.md: updated with canonical doc links - .archive/: backup of pre-documentation-pipeline originals - backend/uv.lock: uv dependency lockfile - Delete committed __pycache__ .pyc files (should have been gitignored) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
94 lines
4.2 KiB
Markdown
94 lines
4.2 KiB
Markdown
# Tech Stack — Accessible Video Processing Platform
|
|
|
|
<!-- SCOPE: tech-stack | owner: ln-113 | generated: 2026-04-29 -->
|
|
|
|
## Backend
|
|
|
|
| Component | Package | Version | Role |
|
|
|-----------|---------|---------|------|
|
|
| Web framework | FastAPI | 0.115.0 | Async REST + WebSocket |
|
|
| Task queue | Celery | 5.3.4 | Background AI processing |
|
|
| Database driver | Motor (AsyncIOMotor) | latest | MongoDB async driver |
|
|
| Cache / broker | Redis | 7.2 | Celery broker + rate limit state |
|
|
| Data validation | Pydantic | 2.5 | Request/response schemas |
|
|
| Runtime | Python | 3.11 | Language version |
|
|
| Package manager | Poetry | latest | Dependency management |
|
|
| ASGI server | Uvicorn | latest | HTTP server |
|
|
| JWT | python-jose | ^3.3.0 | Token encode/decode |
|
|
| Password hash | passlib + bcrypt | latest | Password hashing |
|
|
| Observability | OpenTelemetry | latest | Tracing (currently disabled) |
|
|
| Error tracking | Sentry SDK | latest | Exception capture |
|
|
| Metrics | Prometheus client | latest | `/metrics` endpoint |
|
|
|
|
## Frontend
|
|
|
|
| Component | Package | Version | Role |
|
|
|-----------|---------|---------|------|
|
|
| UI framework | React | 19.1.1 | Component model |
|
|
| Build tool | Vite | 7.1.2 | Dev server + bundler |
|
|
| Language | TypeScript | 5.8 | Type safety |
|
|
| Server state | TanStack Query | 5.85 | API caching + invalidation |
|
|
| Routing | React Router | 7.8 | Client-side routing |
|
|
| Styling | Tailwind CSS | 4.1 | Utility-first CSS |
|
|
| Client state | Zustand | 5.0 | Auth token + UI state |
|
|
| Forms | React Hook Form + Zod | latest | Form handling + validation |
|
|
| HTTP client | Axios | latest | API calls with interceptors |
|
|
| E2E testing | Playwright | latest | Browser automation |
|
|
| Unit testing | Vitest + RTL | latest | Component tests |
|
|
|
|
## External Services
|
|
|
|
| Service | Provider | Purpose | Auth |
|
|
|---------|---------|---------|------|
|
|
| Caption / AD generation | Gemini 2.5 Pro | Core AI processing | API key |
|
|
| Translation | Google Cloud Translate | 50+ language translation | Service account |
|
|
| Transcreation | Gemini 2.5 Pro | Cultural adaptation | API key |
|
|
| TTS (primary) | Google Cloud TTS | Audio description synthesis | Service account |
|
|
| TTS (premium voices) | ElevenLabs | High-quality voice synthesis | API key |
|
|
| File storage | Google Cloud Storage | Video + VTT files | Service account |
|
|
| Email | SendGrid | Client delivery notifications | API key |
|
|
| SSO | Microsoft Entra ID | Enterprise login | OAuth2/OIDC |
|
|
| Error tracking | Sentry | Exception capture + performance | DSN |
|
|
| Secrets | GCP Secret Manager | Production credentials | Service account |
|
|
|
|
## Database
|
|
|
|
| Store | Technology | Host | Purpose |
|
|
|-------|-----------|------|---------|
|
|
| Primary DB | MongoDB Atlas | Cloud (M10+) | Job documents, users, glossaries |
|
|
| Cache / broker | Redis | Docker (local) / Cloud (prod) | Celery tasks, rate limit counters |
|
|
| Vector index | Atlas Vector Search | In MongoDB Atlas | Glossary embedding retrieval |
|
|
|
|
## Infrastructure
|
|
|
|
| Layer | Technology | Notes |
|
|
|-------|-----------|-------|
|
|
| Container runtime | Docker + Docker Compose | All backend services containerized |
|
|
| Reverse proxy | Apache 2.4 | Modules: mod_proxy, mod_proxy_wstunnel, mod_rewrite |
|
|
| Server OS | Linux | optical-web-1 (GCP VM, 32GB RAM, 8 CPU) |
|
|
| Python env | Poetry virtualenv | Inside Docker containers |
|
|
| Node env | Node 20+ / npm | Frontend build |
|
|
|
|
## Configuration Files
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `backend/pyproject.toml` | Python deps + ruff config |
|
|
| `backend/mypy.ini` | mypy type-check config |
|
|
| `frontend/package.json` | Node deps |
|
|
| `frontend/eslint.config.js` | ESLint rules |
|
|
| `frontend/tsconfig.json` | TypeScript config |
|
|
| `frontend/playwright.config.ts` | E2E test config |
|
|
| `docker-compose.yml` | Base services |
|
|
| `docker-compose.local.yml` | Local dev overrides |
|
|
| `docker-compose.prod.yml` | Production overrides |
|
|
| `.env.local` | Local secrets (gitignored) |
|
|
| `.env.production` | Production secrets (gitignored) |
|
|
| `.env.prod.example` | Template for production env |
|
|
|
|
## Maintenance
|
|
|
|
**Update triggers:** Dependency version bump, new external service added, Python or Node runtime version change.
|
|
**Verification:** Versions match `backend/pyproject.toml` and `frontend/package.json`.
|
|
|
|
<!-- END SCOPE: tech-stack -->
|