User Interface medium complexity mobile
0
Dependencies
0
Dependents
1
Entities
0
Integrations

Description

Mobile screen that lets the mentor attach a receipt photo to an expense by launching the device camera or picking from the gallery. Performs orientation correction and basic blur/quality checks before handing the image off for upload, and shows progress and retry states inline on the expense form.

Feature: Receipt Photo Upload

receipt-capture-screen

Sources & reasoning

Section 2.1 explicitly requires receipt photos above a 100 NOK threshold for HLF. Receipt upload is a direct sub-capability of the travel reimbursement workflow listed in Phase 2 (Core Product) in section 5.

Responsibilities

  • Trigger camera capture or gallery picker for receipt images
  • Run client-side quality checks (orientation, blur, file size)
  • Display upload progress, retry, and error states
  • Bind the resulting receipt reference to the parent expense entry
  • Render the attached receipt thumbnail for review before submit

Interfaces

openCamera(): Promise<LocalImage>
pickFromGallery(): Promise<LocalImage>
attachReceipt(expenseId, image): Promise<ReceiptRef>
removeReceipt(expenseId): Promise<void>

Related Data Entities (1)

Data entities managed by this component