An expense workflow, from receipt to review
Application engineering
- Receipt processing: image upload and storage, OpenAI vision-based extraction, schema validation and a review step before data is used downstream.
- Data and permissions: relational models for organizations, memberships, receipts, reports and reimbursement workflows, with custom authentication and session handling.
- Long-running work: background report jobs, retry controls, idempotency and operational records for work that should not depend on one browser request.
- Storage: Cloudflare R2 object handling, ownership checks, signed access and environment-specific configuration.