An intelligent mobile application that helps users diagnose and repair home issues using AI vision analysis.
- AI-Powered Visual Diagnosis - Upload or capture photos of home repair issues
- Gemini 1.5 Pro Vision - Advanced image recognition for hardware and material identification
- Step-by-Step Instructions - Detailed repair guides with conditional logic
- Skill Level Assessment - Rates projects from Novice to Expert
- Material & Tool Lists - Comprehensive lists with cost estimates
- Project History - Save and track all repair projects
- Safety Warnings - Project and step-level safety information
- iOS AR Ready - Infrastructure for AR overlay guidance (iOS)
- Expo SDK 54 - React Native framework
- TypeScript - Type-safe development
- expo-router - File-based navigation
- expo-camera - Camera integration
- expo-image-picker - Gallery access
- React Native - Cross-platform mobile development
- FastAPI - High-performance Python API
- Gemini 1.5 Pro Vision - AI image analysis
- MongoDB - Document database
- Motor - Async MongoDB driver
- emergentintegrations - Unified AI API access
- Gemini 1.5 Pro Vision - Image analysis and repair guidance
- Emergent LLM Key - Universal API access
- Node.js 18+ and Yarn
- Python 3.11+
- MongoDB
- Expo account
- Apple Developer account (for iOS builds)
cd frontend
# Install dependencies
yarn install
# Start development server
expo start
# For Expo Go testing
expo start --tunnelcd backend
# Install dependencies
pip install -r requirements.txt
# Start server
uvicorn server:app --reload --host 0.0.0.0 --port 8001Frontend (.env):
EXPO_PUBLIC_BACKEND_URL=https://your-backend-url.comBackend (.env):
MONGO_URL=mongodb://localhost:27017
DB_NAME=diy_home_repair
EMERGENT_LLM_KEY=your-key-herecd frontend
# Login to EAS
eas login
# Build for iOS
eas build --platform ios --profile production
# Submit to TestFlight
eas submit --platform ios# Build for Android
eas build --platform android --profile production
# Submit to Play Store
eas submit --platform androidDIY-AI/
├── frontend/ # Expo mobile app
│ ├── app/ # Screens (expo-router)
│ │ ├── _layout.tsx # Navigation layout
│ │ ├── index.tsx # Home screen
│ │ ├── camera.tsx # Camera capture
│ │ ├── diagnosis.tsx # AI results
│ │ ├── project.tsx # Project details
│ │ └── history.tsx # Project history
│ ├── assets/ # Images and fonts
│ ├── app.json # Expo configuration
│ ├── eas.json # Build configuration
│ └── package.json # Dependencies
├── backend/ # FastAPI server
│ ├── server.py # API endpoints
│ ├── requirements.txt # Python dependencies
│ └── .env # Backend config
└── README.md # This file
POST /api/diagnose
Body: { image_base64, description }
Response: Complete project with steps, materials, tools
GET /api/projects # List all projects
GET /api/projects/{id} # Get specific project
DELETE /api/projects/{id} # Delete project
POST /api/projects/{id}/toggle-item
Body: { item_id, owned }
- Real-time photo capture
- Gallery upload
- Image preview with description
- Hardware identification
- Material recognition
- Issue type detection
- Skill level assessment (1-4)
- Time estimation
- Expandable step-by-step guide
- Conditional logic (if/then scenarios)
- Image hints for AR guidance
- Step-specific warnings
- Comprehensive lists
- Cost estimates
- Ownership tracking
- Mock "Add to Cart" feature
- All saved repairs
- Quick access to previous projects
- Delete functionality
- Pull-to-refresh
{
"ios": {
"bundleIdentifier": "com.diyhomerepair.app",
"buildNumber": "2",
"infoPlist": {
"NSCameraUsageDescription": "Take photos of repairs",
"NSPhotoLibraryUsageDescription": "Select repair photos"
}
}
}- development - Development builds
- preview - Internal testing
- production - App Store releases
| Level | Name | Description | Time | Tools |
|---|---|---|---|---|
| 1 | Novice | No power tools | <30 min | Basic hand tools |
| 2 | Beginner | Basic tools | 1-2 hrs | Hammer, screwdriver |
| 3 | Intermediate | Power tools | 2-4 hrs | Drill, saw |
| 4 | Expert | Specialized | 4+ hrs | Professional tools |
- API keys stored in environment variables
- Base64 image encoding for database storage
- No hardcoded credentials
- Proper CORS configuration
- MongoDB connection secured
- ✅ Splash screen path corrected
- ✅ Bundle identifier added
- ✅ New architecture disabled
- ✅ Camera/picker plugins configured
- ✅ Updated to React 19.1.0
- ✅ Matches react-native-renderer
expo start --tunnel
# Scan QR code with Expo Go app- Build with EAS
- Submit to TestFlight
- Install via TestFlight app
- Build APK/AAB
- Install directly or via Play Store beta
{
id: String,
title: String,
description: String,
skill_level: Number (1-4),
skill_level_name: String,
estimated_time: String,
image_base64: String,
hardware_identified: String,
issue_type: String,
steps: [InstructionStep],
materials: [MaterialTool],
tools: [MaterialTool],
safety_warnings: [String],
created_at: DateTime
}- Full AR implementation with expo-ar-kit
- Gamification (badges, points, streaks)
- Maintenance calendar
- Community features
- Real commerce integration
- Video snippet library
- Smart home IoT integration
Private project - All rights reserved
Max Murad
- Email: max_in_nyc@yahoo.com
- GitHub: @maxmurad
- Expo team for amazing mobile framework
- Google for Gemini AI API
- Emergent for unified AI integration
- React Native community
For issues or questions:
- Check documentation in
/app/*.mdfiles - Review TestFlight fix guide
- Check Expo documentation
- Contact developer
Built with ❤️ using Expo, React Native, FastAPI, and Gemini AI
Last Updated: January 28, 2026
Version: 1.0.0 (Build 2)
Status: Production Ready ✅