Original Idea
Warranty Expiration Tracker A mobile app that stores purchase receipts, extracts warranty dates with OCR, and alerts you before coverage expires so you never miss a free repair.
Product Requirements Document (PRD): WarrantyWise
1. Executive Summary
WarrantyWise is a mobile-first solution designed to eliminate the financial loss and frustration associated with lost receipts and forgotten product warranties. By leveraging state-of-the-art OCR (Optical Character Recognition) and AI-driven data extraction, the app allows users to digitize physical receipts in seconds, automatically calculates warranty expiration dates, and provides proactive push notifications. The goal is to ensure consumers never miss a free repair or replacement window, centralizing all purchase protection in a secure, cloud-synced dashboard.
2. Problem Statement
Consumers frequently lose physical thermal paper receipts, which fade over time, or forget the specific coverage periods for their high-value purchases. When a product fails, finding the proof of purchase and determining warranty status is often impossible, leading to unnecessary out-of-pocket repair costs or the premature disposal of fixable items.
3. Goals & Success Metrics
- User Adoption: Reach 50,000 Monthly Active Users (MAU) within the first year.
- OCR Accuracy: Achieve >95% accuracy on automated extraction of Merchant Name, Date, and Total.
- Retention: 40% Day-30 retention by providing value through "Expiration Approaching" alerts.
- Operational Efficiency: Reduce manual data entry time to under 10 seconds per receipt review.
4. User Personas
- The Proactive Homeowner: Manages dozens of appliances and home systems; needs a centralized "Home Manual" and expiration tracker.
- The Tech Enthusiast: Frequently buys high-end gadgets (laptops, cameras, GPUs) and needs to track individual component warranties.
- The Small Business Owner: Tracks equipment for tax depreciation and maintenance schedules without a full enterprise asset management suite.
- The Student/Renter: Manages a smaller set of critical electronics and needs an easy way to move records between dorms or apartments.
5. User Stories
- As a user, I want to take a photo of my receipt so that I don't have to keep a physical copy.
- As a user, I want the app to automatically find the purchase date and store name so I don't have to type them manually.
- As a user, I want to receive a notification 30 days before a warranty expires so I can inspect the product for issues.
- As a user, I want to share my "Kitchen" category with my spouse so we both have access to appliance receipts.
- As a user, I want to export a PDF of my receipt so I can send it to a manufacturer for a claim.
6. Functional Requirements
6.1 Core Receipt & Warranty Management
- Smart Capture: Camera interface with real-time edge detection and auto-shutter.
- Hybrid OCR Extraction: Automated extraction of Merchant, Date, Price, and Model Numbers using AWS Textract.
- Warranty Logic: Automatic duration suggestion based on product category (e.g., "Electronics" defaults to 1 year).
- Manual Override: Users must be able to edit any extracted field for 100% data integrity.
6.2 Notifications & Alerts
- Multi-Stage Alerts: Push notifications at T-30, T-7, and T-1 days before expiration.
- Custom Reminders: Ability to set a custom "Check-up" date (e.g., "Remind me to service the AC in 6 months").
6.3 Organization & Search
- Categories: Pre-defined tags (Electronics, Appliances, Furniture, Tools).
- Global Search: Search by brand name, product name, or store.
- Cloud Archive: Safe storage of high-resolution receipt images in AWS S3.
7. Technical Requirements
7.1 Tech Stack (2026 Standards)
- Frontend: React Native 0.83 (using New Architecture/Fabric), Expo SDK 55.
- Styling: NativeWind (Tailwind for React Native).
- Backend: Node.js v23 (ESM Only) using Express and Native Fetch.
- Database: PostgreSQL 18 with Native UUIDv7 for time-ordered indexing.
- OCR/AI: AWS Textract (AnalyzeExpense) + Amazon Bedrock (Claude 3.5 Sonnet) for data normalization.
- Image Handling:
react-native-compressor(WebP conversion) andreact-native-vision-camera.
7.2 Integrations
- Auth: Firebase Auth with OAuth 2.1 & PKCE.
- Storage: AWS S3 Intelligent-Tiering with S3 Transfer Acceleration.
- Notifications: Firebase Cloud Messaging (FCM) + Notifee for local triggers.
- Email: SendGrid for monthly warranty summaries.
8. Data Model
Entity: User
| Field | Type | Description |
| :--- | :--- | :--- |
| userId | UUIDv7 | Primary Key |
| email | String | Unique |
| fcmToken | String | For push notifications |
| timezone | String | For localized alerts |
Entity: WarrantyItem
| Field | Type | Description |
| :--- | :--- | :--- |
| itemId | UUIDv7 | Primary Key |
| userId | UUIDv7 | Foreign Key |
| productName | String | User-defined or OCR-extracted |
| category | Enum | Electronics, Kitchen, etc. |
| purchaseDate | Date | |
| expiryDate | Date | |
| receiptId | UUIDv7 | Foreign Key to Receipt |
Entity: Receipt
| Field | Type | Description |
| :--- | :--- | :--- |
| receiptId | UUIDv7 | Primary Key |
| s3Url | String | Path to compressed WebP |
| rawJson | JSONB | Raw output from Textract |
| confidence | Float | AI confidence score |
9. API Specification
POST /api/v1/receipts/upload-url
- Request:
{ fileName: string, fileType: string } - Response:
{ uploadUrl: string, receiptId: string }(AWS S3 Pre-signed URL)
POST /api/v1/warranty/process
- Request:
{ receiptId: string } - Action: Triggers Lambda $\rightarrow$ Textract $\rightarrow$ Bedrock Refinement.
- Response:
{ extractedData: { merchant: string, date: date, total: number } }
GET /api/v1/items
- Request: Query params for filtering (e.g.,
status=expiring) - Response:
Array<WarrantyItem>
10. UI/UX Requirements
- OCR Bounding Boxes: Show real-time AR overlays on the camera view to confirm the receipt is in focus.
- Haptic Feedback: Subtle "tick" when a document edge is detected; a "thud" if the scan fails.
- Side-by-Side Review: A split-screen UI showing the cropped receipt image on top and editable form fields on the bottom.
- Privacy Shield: Visual indicator in the UI when OCR is processing locally on-device via ExecuTorch.
11. Non-Functional Requirements
- Performance: Image compression and upload should take <2 seconds on 5G.
- Security: AES-256 encryption for images at rest; GDPR "Right to be Forgotten" handled via KMS Crypto-shredding.
- Availability: 99.9% uptime for the API and Cloud storage.
- Compliance: Full CCPA/GDPR compliance with data residency in the AWS European Sovereign Cloud for EU users.
12. Out of Scope
- In-app Repair Scheduling: No direct booking with repair shops (Phase 2).
- Browser Extension: No web-clipper for desktop (Initial launch is mobile-only).
- Price Protection: Tracking price drops for refunds is not a core requirement.
13. Risks & Mitigations
- Risk: Low-quality photos lead to poor OCR.
- Mitigation: Implement real-time quality checks and a "150 DPI rule" in the camera module.
- Risk: Thermal receipts fade before a claim is made.
- Mitigation: S3 storage serves as the permanent "Digital Twin" of the receipt.
- Risk: Manufacturer denies digital receipts.
- Mitigation: Provide a "Certified Export" PDF that includes the original image and metadata.
14. Implementation Tasks
Phase 1: Project Setup & Foundation
- [ ] Initialize React Native 0.83 project with New Architecture enabled
- [ ] Set up Expo SDK 55 for camera and filesystem modules
- [ ] Configure Node.js v23 backend with ESM and Native Fetch
- [ ] Deploy PostgreSQL 18 instance with UUIDv7 support
Phase 2: Secure Camera & Image Processing
- [ ] Implement
react-native-vision-camerawith AR bounding box overlay - [ ] Integrate
react-native-compressorfor client-side WebP/AVIF conversion - [ ] Set up AWS S3 bucket with Transfer Acceleration and Pre-signed URLs
- [ ] Build Lambda trigger for image pre-processing (sharpen/de-skew)
Phase 3: AI/OCR Pipeline
- [ ] Connect AWS Textract
AnalyzeExpenseAPI - [ ] Implement Amazon Bedrock (Claude 3.5) for post-OCR data normalization
- [ ] Build the "Side-by-Side" Review UI component
- [ ] Create the warranty duration calculation engine based on category
Phase 4: Notifications & Governance
- [ ] Implement FCM for data-only silent background triggers
- [ ] Integrate Notifee for local "High Priority" expiry alerts
- [ ] Set up AWS KMS for user-level crypto-shredding (GDPR compliance)
- [ ] Build the PDF Export module for insurance/claim submissions
Phase 5: Launch & Monitoring
- [ ] Set up OpenTelemetry (OTel) and Pino for structured logging
- [ ] Configure Snyk for automated dependency scanning
- [ ] Finalize "Household Sharing" logic using PostgreSQL Row-Level Security (RLS)
- [ ] Submit to Apple App Store and Google Play Store