FreshScan is an offline-first home inventory and expiry tracking app.
FreshScan stores inventory item names, brands, categories, storage locations, quantities, expiry dates, opened dates, notes, barcodes, product photos, expiry-date photos, notification preferences, ad consent preference, crash reporting preference, and custom storage places locally on your device.
Camera access is used for barcode scanning, expiry-date OCR, product photos, and expiry-date photos. In the MVP, OCR and barcode recognition are processed on device. Camera data is not uploaded to a FreshScan backend.
When remote barcode lookup is enabled, the app may send barcode values to public product lookup services to suggest product names, brands, and categories. Remote lookup failure never blocks manual item creation.
FreshScan can schedule local notifications before saved expiry dates. Deleting an item cancels related local notifications.
Release builds include ad placeholders only. Development builds may load Google-provided AdMob test ads. Before real AdMob ads are enabled, FreshScan must implement the required consent flow and keep a privacy choices entry point in Settings.
Crash reporting is optional and disabled by default in this build. If a production crash reporting SDK is enabled later, the privacy policy and store disclosures must be updated before release. Crash reports must not include inventory photos, expiry photos, notes, or full local database contents.
Medicine items are inventory records only. FreshScan does not provide medical, dosage, treatment, compatibility, or safety advice.
Users can edit or delete local inventory items in the app. Users can disable remote lookup, notifications, crash reporting, and ad personalization preferences in Settings.