SwiftInspect Pro

Business

Original Idea

Property Inspection Mobile A mobile app that works offline, stamps photos, and exports clean inspection reports in minutes.

Product Requirements Document (PRD): SwiftInspect Pro

1. Executive Summary

SwiftInspect Pro is an "offline-first" mobile solution designed for property inspectors, managers, and insurance adjusters. The application eliminates the "double-work" of field inspections by automating photo timestamping, GPS watermarking, and instant report generation. By leveraging a high-performance sync engine and on-device AI for damage detection, SwiftInspect Pro ensures that data captured in basements or remote sites is securely synchronized the moment a connection is restored, delivering professional-grade PDF reports in minutes instead of hours.


2. Problem Statement

Property inspectors currently lose 25–40% of their billable time to post-inspection data entry. Mobile connectivity at job sites is often unreliable, causing standard cloud-based apps to lag or lose data. Furthermore, manual photo labeling and the lack of verifiable "evidence-grade" metadata (GPS/Time) lead to disputes in insurance claims and tenant move-out assessments.


3. Goals & Success Metrics

  • Goal 1: Zero data loss in offline environments.
  • Goal 2: Reduce report generation time by 80%.
  • Goal 3: Increase evidence integrity via "burned-in" visual watermarks.

Success Metrics:

  • Time-to-Report: Average time from inspection completion to PDF delivery < 3 minutes.
  • Sync Reliability: 99.9% success rate for background synchronization.
  • User Retention: < 5% churn from "Independent Landlord" segment in the first 6 months.

4. User Personas

| Persona | Role | Pain Points | Goal | | :--- | :--- | :--- | :--- | | Field Mike | Independent Inspector | No signal in apartments; hates typing on small keyboards. | Get in, get out, and have the report ready before he hits the car. | | Manager Sarah| Property Manager | Disputes over damage dates; messy photo folders. | High-quality, timestamped evidence for security deposit deductions. | | Adjuster Alex | Claims Adjuster | Fraudulent claims; inconsistent photo quality. | Verified GPS/Time data to validate the location of the claim. |


5. User Stories

  • As an inspector, I want to capture photos with GPS coordinates burned into the pixels so that no one can dispute when or where a photo was taken.
  • As a field worker, I want the app to work flawlessly without internet so that I don't lose my notes while working in a concrete basement.
  • As a manager, I want to sync my inspection data directly into Yardi or AppFolio so that I don't have to manually upload PDFs.
  • As an admin, I want to use AI to automatically flag "cracks" or "mold" in photos to ensure I don't miss critical maintenance issues.

6. Functional Requirements

6.1. Inspection Engine

  • Hierarchical Navigation: Property > Area (e.g., Exterior) > Room (e.g., Kitchen) > Item (e.g., Oven).
  • Custom Templates: Ability to create/edit checklists for different property types (Residential, Commercial, HVAC).
  • Status Tracking: Marking items as "Good," "Fair," or "Damaged" with mandatory photo triggers for "Damaged" status.

6.2. Evidence Capture (Evidence-Grade)

  • Visual Watermarking: Real-time overlay of Date, Time (UTC), and GPS (Lat/Long) on photo frames.
  • EXIF Integrity: Embedding forensic-grade metadata into image headers using dual-frequency GNSS data where available.

6.3. Offline Synchronization

  • Delta Sync: Only sync changed records to minimize data usage.
  • Background Uploads: Resumable media uploads that continue even if the app is minimized.

6.4. Report Generation

  • Instant PDF: On-device preview generation for immediate client sign-off.
  • Cloud Finalization: High-fidelity, pixel-perfect PDF rendering via headless Chromium for the "Official" version.

7. Technical Requirements

7.1. Tech Stack (2026 Standards)

  • Frontend: React Native v0.83.x (Utilizing the New Architecture/Fabric by default).
  • Backend: Node.js v22.x (LTS) with NestJS v11.1.x.
  • Database (Cloud): PostgreSQL v18.x (Supported until 2030).
  • Database (Local): SQLite with SQLCipher (AES-256) via op-sqlite.
  • Sync Engine: PowerSync (Logical replication from Postgres to SQLite).
  • Infrastructure: AWS (S3 for media, Lambda for PDF rendering, App Runner for API).

7.2. Specific Libraries

  • Camera: react-native-vision-camera (v4+) for JSI-based frame processing.
  • Watermarking: react-native-skia for GPU-accelerated pixel burning.
  • Location: react-native-gnss-status for high-precision L5 signal verification.
  • AI Inference: react-native-fast-tflite with YOLO11m model for damage detection.

8. Data Model

| Entity | Attributes | Relationships | | :--- | :--- | :--- | | Property | id, address, type, external_id (Yardi/AppFolio) | Has many Inspections | | Inspection | id, property_id, inspector_id, status (Draft/Final), sync_status | Has many InspectionItems | | InspectionItem | id, area_name, item_name, condition (1-5), is_damaged | Has many MediaEvidence | | MediaEvidence | id, item_id, local_path, s3_url, gps_lat, gps_long, timestamp | Belongs to InspectionItem |


9. API Specification (Highlights)

POST /v1/sync/push

  • Description: Uploads the local "Outbox" of mutations.
  • Security: Bearer JWT + HMAC request signing.
  • Request Body: Array of JSON-Patch operations.

GET /v1/reports/:id/generate

  • Description: Triggers AWS Lambda to generate the official high-fidelity PDF.
  • Response: { "report_url": "https://s3.amazonaws.com/...", "status": "complete" }

10. UI/UX Requirements

  • Thumb-Driven Design: All primary actions (Photo, Next, OK) must be reachable with one thumb for field use.
  • Dark Mode Support: Essential for inspections in low-light attics/basements.
  • Optimistic UI: UI updates instantly; "Syncing" status shown via a subtle status bar icon.
  • Visual Feedback: Use Skia to show real-time "AI Bounding Boxes" when damage is detected in the camera view.

11. Non-Functional Requirements

  • Performance: App must load a 500-item checklist in < 2 seconds using Nitro SQLite.
  • Security: AES-256 encryption for local DB; react-native-keychain for hardware-backed key storage.
  • Reliability: Resumable uploads (TUS protocol) to handle 4G/5G handoff issues.

12. Out of Scope

  • Native Desktop App (Web-based portal only for admins).
  • In-app payment processing for end-tenants (Inspector billing only).
  • Video-based inspections (V1 is Photo-only).

13. Risks & Mitigations

  • Risk: OS kills background sync process.
    • Mitigation: Use Android Foreground Services and iOS BGTaskScheduler with user notifications.
  • Risk: AI false positives for damage.
    • Mitigation: AI acts as a "suggestion" only; inspector must manually confirm the flag.
  • Risk: High Yardi Integration costs.
    • Mitigation: Start with "Generic CSV Export" while navigating the SIPP partner program.

14. Implementation Tasks

Phase 1: Project Setup & Core Architecture

  • [ ] Initialize React Native 0.83.x project with New Architecture enabled.
  • [ ] Set up NestJS 11.1.x backend with PostgreSQL 18.x.
  • [ ] Configure op-sqlite with SQLCipher (AES-256) for local storage.
  • [ ] Implement react-native-keychain for secure database key management.
  • [ ] Set up PowerSync for logical replication between Postgres and SQLite.

Phase 2: Evidence Capture & Offline Engine

  • [ ] Integrate react-native-vision-camera (v4).
  • [ ] Build react-native-skia frame processor for real-time GPS/Timestamp watermarking.
  • [ ] Implement hierarchical data entry (Property > Area > Room).
  • [ ] Create the "Offline Outbox" pattern for queuing mutations during signal loss.
  • [ ] Build react-native-compressor logic to downsize images before sync.

Phase 3: Reports & AI Features

  • [ ] Implement on-device PDF generation using pdf-lib for "Draft" view.
  • [ ] Set up AWS Lambda with Headless Chromium for "Official" PDF rendering.
  • [ ] Integrate react-native-fast-tflite with YOLO11m for damage detection.
  • [ ] Implement tus-js-client for resumable background image uploads.

Phase 4: Integrations & Polishing

  • [ ] Build CSV/Excel export engine for legacy system compatibility.
  • [ ] Implement AppFolio Stack™ OAuth 2.0 flow for property sync.
  • [ ] Set up SendGrid for automated report delivery.
  • [ ] Finalize SOC 2 audit logging for all record modifications.