Feature: QR Transfer-of-responsibility

The sender provides a QR and the driver "signs" by scanning it. This initiates a database transaction to transfer responsibility of the selected items and updates the sender's UI on success. At the destination, the receiver presents another QR, and the driver scans to complete the handoff

Feature: Expiring QRs

QRs have a 1-minute lifetime and refresh close to expiration. Scanning a QR invalidates it for all other users

Feature: Queued jobs

Asynchonously downloads AI-generated images from a slow 3rd party API and updates the UI on completion

Feature: Scheduled reset

Database and images reset automatically at 2am daily