Back to Projects
June 2019 - February 2020 • Full Stack

AI-Powered Moving Inventory Platform

Full-stack engineer building a React Native mobile app with on-device TensorFlow ML for automated household inventory detection and moving quote generation.

Technology consulting and product development agency building custom software solutions for startups and enterprises.

Project Overview

Built a mobile platform that uses machine learning to help users inventory their household belongings for moving. The app enables users to photograph rooms in their home, automatically detect and identify objects using on-device TensorFlow models, and generate accurate moving quotes based on their inventory.

The Product

Handled simplifies the moving estimation process by replacing manual inventory lists with AI-powered object detection:

  • Photo Capture: Camera interface for photographing rooms and belongings
  • Object Detection: TensorFlow Lite ML model identifies items in photos
  • Inventory Management: Organize items by room with tagging and notes
  • Quote Generation: Get moving estimates based on detected inventory
  • Move Tracking: Manage origin/destination addresses and scheduling

Technical Architecture

Mobile App (React Native)

Cross-platform mobile application with ML integration:

  • Framework: React Native 0.59 for iOS and Android
  • State Management: Redux with Redux-Saga for async workflows
  • Persistence: redux-persist for offline-first data storage
  • ML Integration: TensorFlow Lite with SSDMobileNet model
  • Authentication: Auth0 for secure login
  • Navigation: React Navigation for screen routing
  • Camera: react-native-camera for photo capture
  • Maps: react-native-maps for address visualization

Backend (Koa/GraphQL)

TypeScript API with GraphQL interface:

  • Framework: Koa with koa-router for REST endpoints
  • API: Apollo Server with GraphQL schema
  • Database: PostgreSQL with Knex query builder
  • Authentication: JWT with Auth0 integration
  • Storage: AWS S3 for photo uploads
  • Events: Kafka for event streaming
  • CRM: HubSpot integration for lead management
  • Logging: Bunyan for structured logging

Key Contributions

TensorFlow Lite Integration

Implemented on-device machine learning for object detection:

  • Integrated TensorFlow Lite React Native bridge for model inference
  • Configured SSDMobileNet model for household object detection
  • Built model loading system supporting both bundled and downloaded models
  • Implemented confidence thresholds and result filtering for accuracy
  • Created bounding box visualization for detected objects

React Native Mobile Development

Built comprehensive mobile application:

  • Developed 19 screen components covering full user journey
  • Created onboarding flow with permissions handling and tutorials
  • Built photo capture interface with camera integration
  • Implemented room-based inventory organization
  • Developed item detail views with tagging and confirmation
  • Set up offline-first state persistence with redux-persist migrations

GraphQL API Development

Created backend services for inventory and move management:

  • Designed GraphQL schema for users, items, rooms, photos, and moves
  • Implemented resolvers with DataLoader for efficient data fetching
  • Built mutations for CRUD operations on inventory items
  • Created move management with quotes and scheduling
  • Integrated HubSpot for CRM and lead tracking

State Management Architecture

Implemented robust Redux architecture:

  • Set up Redux-Saga for complex async workflows
  • Built inventory state with room and item relationships
  • Implemented photo upload saga with progress tracking
  • Created state migrations for schema evolution
  • Configured shallow and deep persistence strategies

Mobile App Features

Inventory Flow

  1. Create Room: Define rooms in the home (bedroom, kitchen, etc.)
  2. Take Photos: Capture photos of belongings in each room
  3. Object Detection: ML model identifies items in photos
  4. Confirm Items: Review and confirm detected items
  5. Add Details: Tag items as fragile, important, or rename them

Move Management

  • Origin and destination address entry with geocoding
  • Move date scheduling with availability
  • Quote generation based on inventory volume
  • Team size and truck recommendations
  • Payment processing integration

User Account

  • Auth0-based authentication
  • Profile management
  • Move history
  • Support access

Data Models

Core Entities

  • User: Account with moves and inventory
  • Move: Origin/destination addresses, dates, quotes
  • Room/Collection: Container for organizing items
  • Item: Detected object with properties
  • Photo: Image with detected items
  • Quote: Moving estimate with pricing

ML Integration

  • Labels: Object categories from ML model
  • BoundingBox: Detected object positions
  • Annotations: ML detection results

Development Environment

Mobile Build

  • iOS builds via Xcode with CocoaPods
  • Android builds with Gradle
  • Metro bundler for JavaScript
  • Reactotron for debugging

Backend

  • TypeScript with strict typing
  • Knex migrations for schema management
  • ESLint and Prettier for code quality
  • Nodemon for development reload

CI/CD

  • App Center for mobile deployments
  • Analytics and crash reporting
  • Beta distribution for testing

Technologies Deep Dive

The technology choices balanced mobile performance with ML capabilities:

  • TensorFlow Lite enabled on-device inference without network latency
  • SSDMobileNet provided fast object detection suitable for mobile hardware
  • Redux-Saga managed complex async flows like photo upload + ML detection
  • redux-persist enabled offline-first architecture for unreliable network conditions
  • GraphQL provided flexible querying for complex inventory relationships
  • Kafka enabled event-driven architecture for move lifecycle tracking

Technologies

React Native TypeScript GraphQL Apollo Koa PostgreSQL TensorFlow Lite Auth0 AWS S3 Kafka Redux Redux Saga

Key Highlights

  • Integrated TensorFlow Lite for on-device object detection using SSDMobileNet model
  • Built React Native mobile app for iOS and Android with camera-based inventory capture
  • Developed GraphQL API with Koa and TypeScript for user, inventory, and move management
  • Implemented Redux state management with offline-first persistence using redux-persist
  • Created room-based inventory organization with photo attachments and item tagging