PhotoPrep v1.0.0
Product Delivery Agreement
This document defines the verified scope, deliverables, and acceptance criteria for PhotoPrep Android application version 1.0.0. All product and technical statements are derived from the iamusta/PhotoPrep repository source code. No feature that is not present in the codebase is included in this agreement.
1. Purpose
This agreement records what PhotoPrep v1.0.0 delivers at release. It is a product scope and acceptance document — not legal advice. It is intended for release planning, store submission, and scope control.
2. Product definition (verified)
PhotoPrep is an offline photo toolkit that runs entirely on the user’s device. The codebase contains no user accounts, cloud upload pipeline, or in-app purchase flow. Image processing runs on-device; results may be saved to the gallery or app storage.
2.1 Editor modes (10)
| Feature | Code enum | UI label (EN) |
|---|---|---|
| Compress | COMPRESS | Compress |
| Resize | RESIZE | Resize |
| Crop | CROP | Crop |
| Convert | CONVERT | Convert |
| Remove metadata | STRIP_METADATA | Remove metadata |
| Image to PDF | TO_PDF | Image to PDF |
| Watermark | WATERMARK | Watermark |
| Background blur | BACKGROUND_BLUR | Background blur |
| Batch rename | RENAME | Batch rename |
| HEIC to JPG | HEIC_TO_JPG | HEIC to JPG |
2.2 Limits and formats
- Batch limit: 100 photos per operation (
AppConstants.BATCH_LIMIT) - Output formats: JPEG, PNG, WEBP, HEIC, PDF
- Gallery folder:
Pictures/PhotoPrep(AppConstants.OUTPUT_FOLDER) - Compression presets: Maximum Saving, Balanced, High Quality, Custom; quick presets: Instagram, Email, Web
- Crop ratios: Free, 1:1, 4:3, 16:9, 3:4, 4:3
- Watermark styles: Corner, Diagonal; positions: all corners + center
- History filters: All, Today, This Week, This Month
- History auto-delete: Never, 30 days, 90 days
2.3 Navigation and screens
- Bottom tabs: Home, History, Menu
- Onboarding: 2 pages on first launch (completion stored in DataStore)
- Before/After compare screen (can be disabled in Settings)
- Menu actions: Rate the app, Send feedback, Share app, Settings, Privacy, Storage & history, Accessibility, Help
- Rating prompt: after 3, 8, or 15 successful processes; 30-day cooldown if declined
2.4 Languages (6 + system default)
English, Turkish, Spanish, Chinese (zh-CN), Hindi, Arabic (RTL). Defined in Android localeConfig.
2.5 Permissions (AndroidManifest)
READ_MEDIA_IMAGES— photo picker (Android 13+)READ_EXTERNAL_STORAGE— maxSdkVersion 32WRITE_EXTERNAL_STORAGE— maxSdkVersion 28
2.6 Analytics (conditional)
If app/google-services.json exists, Firebase Analytics and Crashlytics are enabled
(FIREBASE_ENABLED build flag). Otherwise a no-op analytics implementation is used.
Events logged: process_success, process_failed (with mode and count metadata).
3. Release deliverables
- All 10 editor modes accessible in a signed release build
- Batch limit of 100 enforced consistently across modes
- Settings working: language, theme, default quality/format, save to gallery, compare screen, EXIF strip, history retention, haptic feedback, text size
- Privacy statement aligned with in-app copy: on-device processing; photos are not sent to a server
- Release version 1.0.0 / versionCode 1
- Signed AAB built via
./gradlew bundleRelease - Google Play listing claims match §2 feature list only
- Privacy policy URL reachable from the app: iamusta.github.io/photoprep-privacy-policy.html
- Feedback email from Menu → Send feedback: lagomlabs@gmail.com
- Material 3 UI, RTL support, System/Light/Dark theme, content scale options
- Adaptive launcher icon (white background + PNG foreground)
4. Acceptance criteria
| ID | Criterion | Verification |
|---|---|---|
| K-01 | All 10 modes work in release APK/AAB | Manual smoke test |
| K-02 | Batch limit cannot exceed 100 photos | Picker + UI label |
| K-03 | 6 languages + Arabic RTL layout | Language setting test |
| K-04 | Compare screen can be disabled in Settings | Settings toggle |
| K-05 | Privacy policy link opens without error | On-device test |
| K-06 | Store listing text matches §2 features only | Listing review |
| K-07 | Signed AAB uploads to Play Console | Console upload |
| K-08 | Feedback email intent opens | Menu → Send feedback |
5. Out of scope (not in codebase)
- User accounts, login, or cloud sync
- Cloud storage or server-side image processing
- In-app purchases, subscriptions, or Pro tier
- iOS or web application
- Built-in social platform integrations (system share intent and share-app text only)
- Automatic background removal (portrait blur only)
- AI-based editing
6. Reference URLs
| Source repository | github.com/iamusta/PhotoPrep |
|---|---|
| Privacy policy | iamusta.github.io/photoprep-privacy-policy.html |
| Play Store package | Play Store listing URL |
| Feedback email | lagomlabs@gmail.com |
| Document version | 1.1 — commit 2b4e676 |
7. Approval
By signing below, the parties confirm they have read this agreement and accept the scope and criteria in §2–§5.