Avataq is a hybrid Odoo 16 + Django platform for managing Indigenous student scholarships, enrollment and document handling. Odoo holds the business logic — students, schools, sessions, scholar years, enrollment records, computing sheets for billing, reconciliation. A separate Django application serves the document explorer side: read-only access to uploaded scholarship documents with sixty-second presigned S3 download URLs, gated by role.
We built it end-to-end. Two applications sharing a single PostgreSQL database and communicating via REST. Documents live in AWS S3 under deterministic keys (`{status_no}/{scholar_year}/{slug}.{ext}`) so the key encodes context. Credentials live in `ir.config_parameter`, not in code. An `AvataqDocumentS3Sync` abstract mixin gives any Odoo model uploading capability for free; an `index_document` endpoint on the Django side upserts the index from an `X-API-Key`-gated POST.
Splitting the document explorer out of Odoo wasn't accidental. Odoo is great at modelling the business — students, sessions, computing sheets, reconciliation. It's less great at being a fast, focused viewer for thousands of binary records with per-role access. So the explorer lives in Django, reads the same database, asks S3 for short-lived presigned URLs, and never holds the documents in memory.
We've been on this platform since early 2023. The cadence is steady — new flows as the scholarship workflows expand, document-flow refinements as the cohort grows, S3 backups running nightly.