01 / Introduction
Kushagra Innovations ("we", "us", or "our") develops Expiry Tracker ("the App"). Expiry Tracker helps users track product expiry dates, purchase information, return or replacement deadlines, warranties, subscriptions, bills and other important dates.
The App can be used without creating an account or logging in. Most information used for core functionality is stored locally on your Android device.
Important: This policy describes the current implementation identified for version 1.0. Third-party services such as Google AdMob and Open Food Facts may process certain information outside the App according to their own policies.
02 / Information You Provide
You may voluntarily enter information needed to organize and track items, including:
- Item or product name, category, type and notes
- Seller or retailer information
- Price and purchase information
- Invoice number, order ID and serial number
- Purchase, expiry, return and replacement dates
- Warranty start/end dates
- Subscription start/renewal dates
- Billing frequency and custom reminder settings
- User name, if you choose to enter one
Because fields such as notes, titles and user name are free-form, you could enter personal or sensitive information. We recommend entering only information necessary for your intended use.
03 / Local Storage
The App's core tracking information is stored locally on your Android device. The Room database stores tracked item information such as titles, categories, prices, dates, seller details, invoice or serial numbers, notes and local image references.
Local settings include notification preference, reminder timing, theme mode, currency symbol and user name.
The reviewed version uses standard Room/SQLite and local preference storage. The local database and preferences are not encrypted using a dedicated database-encryption mechanism such as SQLCipher.
04 / Photos, Camera & Documents
Expiry Tracker may use the camera to capture receipt or bill images and Android's visual media picker to select existing images.
Camera images
A temporary image file is created in the App's internal cache directory when you capture a receipt.
Gallery images
When you select an existing image, the App stores a local content URI reference rather than automatically creating a persistent copy.
Image processing
Images used for receipt text recognition or barcode scanning are processed locally using Google ML Kit. The reviewed implementation does not upload those images to a custom server.
05 / OCR & Barcode Scanning
Receipt images can be processed on-device to recognize text and help extract receipt information.
Camera frames containing barcodes are processed on-device to detect barcode values.
After a barcode is detected, the barcode number may be sent to Open Food Facts for product information.
06 / Open Food Facts
When a barcode is successfully detected, Expiry Tracker can use the barcode number to request product information from the Open Food Facts API.
The request may include the detected barcode number and a custom User-Agent. Open Food Facts may receive normal network information associated with the request, such as an IP address.
The API can return product name, brand, category and a product image URL. The App can download and display the returned product image.
Endpoint identified in the reviewed implementation:
https://world.openfoodfacts.org/api/v2/product/{barcode}.json
07 / Advertising & Google AdMob
Expiry Tracker displays banner advertisements using Google AdMob, provided by Google LLC. The reviewed implementation contains banner placements in the Settings and Items screens.
The Google Mobile Ads SDK may process information needed to request, deliver, measure and personalize advertisements, which may include:
- IP address and network information
- Advertising ID or other advertising-related identifiers
- Device and app-related information needed for advertising
- Information associated with ad requests and ad interactions
The reviewed project currently uses Google's official AdMob test App ID and test banner Ad Unit ID. Production advertising configuration may be used before public release.
Consent note: The reviewed version did not contain Google's User Messaging Platform (UMP) SDK. If consent is required for users in a particular region, the advertising/consent configuration should be updated before serving ads there.
08 / Notifications
If enabled, Expiry Tracker uses Android local notifications to notify you about items expiring soon or today.
The current implementation uses WorkManager for a periodic local check. It reads the local database, calculates remaining days and creates a notification when configured conditions are met.
Notifications may display the item title, expiry date and days remaining. They are generated locally and do not use Firebase Cloud Messaging.
09 / Backup, Export & Sharing
Android backup
The current Android configuration enables Android Auto Backup. Depending on Android/device and Google account backup settings, local app data may be included in the Android backup system.
Manual export
The App can export tracked database data as JSON. When you export, the data is passed to Android's Share Sheet and you select the destination application.
Sharing an item
The App can share an individual item summary. Depending on the item, this can include title, expiry date, category, price and notes.
Data shared through Android's Share Sheet may be received and processed by the application or service you choose.
10 / Data Deletion
You can delete individual tracked items. Deleting an item removes its corresponding database record from the local Room database.
Under standard Android behavior, uninstalling the App or clearing app data through Android settings removes the App's local database, settings and cached camera files from the device, subject to Android backup/restore behavior.
The current version does not provide a dedicated "Delete All Data" button.
11 / Third-Party Services
| Service / SDK | Purpose | Data handling |
|---|---|---|
| Google AdMob | Banner advertising | May process advertising-related identifiers, IP/network information and ad request information. |
| Google ML Kit — Text Recognition | Receipt OCR | Processes images/text on-device according to the reviewed implementation. |
| Google ML Kit — Barcode Scanning | Barcode detection | Processes camera frames on-device according to the reviewed implementation. |
| Open Food Facts | Product lookup | Receives detected barcode values through an API request and may receive normal network information. |
| OkHttp | Network requests | Used for Open Food Facts API communication. |
| Coil | Image loading | Used to download/display product images returned by the lookup service. |
The reviewed project did not contain Firebase Analytics, Crashlytics, AppsFlyer, Mixpanel, Amplitude, OneSignal, Sentry, a custom backend, Gemini API or OpenAI API.
12 / Security
We use standard Android application storage and sandboxing mechanisms for local data. Temporary camera files are kept in the App's internal cache directory.
Network communication identified for Open Food Facts uses HTTPS.
The local Room/SQLite database and preference storage in the reviewed version are not protected with dedicated database encryption. We therefore do not represent local data as encrypted.
13 / Children's Privacy
The reviewed version does not contain specific child-directed features, age gates or parental-control mechanisms. The App is a general-purpose utility.
14 / Changes to This Policy
We may update this Privacy Policy when the App's features, data practices, advertising configuration or third-party services change. When an updated policy is published, the effective date may be updated.
15 / Contact
If you have questions, concerns or requests regarding this Privacy Policy or the privacy practices of Expiry Tracker, contact us:
Developer of Expiry Tracker
Email:
kushagra.electron.me@gmail.com
Website:
kushagrainnovations.github.io