Project Info
Inspiration
As college students who recently moved away from home, we each faced the same struggle of turning a bare, unfamiliar apartment into a space that truly felt like ours. We wanted our rooms to reflect our personalities, but designing within a student budget and without a clear vision made it challenging. We often found ourselves asking: “What furniture fits this space?” “Will this color scheme actually look good?” “Can I afford this aesthetic?” These questions inspired us to build a tool that bridges vision and practicality. Our inspiration came from the shared frustration of browsing endlessly through Pinterest boards or IKEA catalogs, trying to imagine how each piece would fit into our unique rooms. We wanted to make the process of interior design visual, personal, and budget-friendly, even for people with no design background.
What it does
Our project is an AI-powered Room Blueprint and Recommendation System that helps users design their spaces with confidence and creativity. Users upload photos of their rooms from one or multiple angles. The backend analyzes the images to identify the room type, dimensions, and color scheme. A recommendation engine matches these details to curated IKEA products, taking into account style preferences, color palettes, and budget. The user receives personalized furniture recommendations with direct purchase links and a generated room blueprint showing how the pieces can fit together. This combination of computer vision and product matching helps turn vague inspiration into actionable design choices. What We Learned We learned how to combine computer vision, machine learning, and structured product data into a cohesive user experience. Beyond the technical skills, we discovered the importance of usability and accessibility—powerful technology only matters if people can easily use it to improve their daily lives. Next Steps Our next steps focus on expanding and enhancing the experience: Pinterest Integration: Allow users to import mood boards and inspiration photos directly as style references. Generative AI Visualization: Use generative models to simulate redesigned rooms and preview how selected furniture would look. Multi-Store Expansion: Add support for other furniture retailers and local stores to provide more variety and price flexibility. AR Preview: Enable users to walk through their redesigned space in augmented reality to visualize scale and layout in real time. Closing Thoughts This project began as a way to make our new apartments feel like home, but it has grown into something that could help anyone design a space that reflects who they are. By blending AI, design, and accessibility, we aim to make interior design more personal, affordable, and visual—one room at a time.
Reabode AI Interior Designer 🏠✨
An AI-powered mobile app that analyzes your room photos and provides personalized furniture and decor recommendations from real retailers like IKEA and Target.
🚀 Features
- AI Room Analysis: Upload room photos and get instant style analysis
- Smart Recommendations: Get personalized product suggestions based on your space
- Real Product Links: Direct links to IKEA, Target, and other retailers
- Mood Board Creation: Visualize your design ideas
- Real-time Collaboration: Work with friends and family on designs
- Mobile-First: Built with React Native for iOS and Android
🛠️ Tech Stack
Mobile App (React Native + Expo)
- Framework: React Native 0.81.5 with Expo SDK 54
- Navigation: React Navigation 6 (Stack & Bottom Tabs)
- UI Components: React Native Paper 5.11.0
- Camera: Expo Camera 17.0.8 & Expo Image Picker 17.0.8
- Gestures: React Native Gesture Handler & Reanimated
- Icons: React Native Vector Icons 10.0.0
- Fonts: Custom fonts (Poppins, Moonlight) via Expo Font
- State Management: React Hooks & Context API
- TypeScript: Full TypeScript support
Frontend Web (Next.js)
- Framework: Next.js 16.0.0 with React 19.2.0
- Styling: Tailwind CSS 4.0 with PostCSS
- TypeScript: TypeScript 5.x with strict type checking
- Linting: ESLint 9 with Next.js configuration
- Build: Next.js built-in bundling and optimization
Backend (FastAPI + Python)
- API Framework: FastAPI 0.104.1 with automatic OpenAPI docs
- Server: Uvicorn 0.24.0 with ASGI support
- AI Services: Google Gemini AI (google-generativeai 0.3.2)
- Image Processing: Pillow 10.2.0+ for image manipulation
- Web Scraping: Selenium 4.15.2 with WebDriver Manager
- Data Validation: Pydantic 2.8.2 for request/response models
- Authentication: Python-JOSE with cryptography
- Security: Passlib with bcrypt for password hashing
- Environment: Python-dotenv for configuration management
- HTTP Client: Requests 2.31.0 for external API calls
- CORS: FastAPI CORS middleware for cross-origin requests
Development & Build Tools
- Package Management: npm with package-lock.json
- Concurrent Development: concurrently 8.2.2 for parallel dev servers
- TypeScript: TypeScript 5.x across all TypeScript projects
- Babel: Babel preset Expo for React Native compilation
- Linting: ESLint with Next.js and React Native configurations
🏗️ Project Architecture
Multi-Platform Structure
This project consists of three main applications working together:
-
Mobile App (
/mobile) - Primary user interface- React Native with Expo for iOS/Android
- Camera integration for room photo capture
- Real-time AI analysis and product recommendations
- Offline-first design with local storage
-
Web Frontend (
/frontend) - Administrative dashboard- Next.js with Tailwind CSS for modern web interface
- Project management and analytics
- Content management for product catalogs
-
Backend API (
/backend) - Core services- FastAPI with automatic API documentation
- AI-powered room analysis using Google Gemini
- Product scraping and recommendation engine
- RESTful API serving both mobile and web clients
Key Features Implemented
- Room Blueprint Generation: Computer vision pipeline for 2D room layouts
- AI Room Analysis: Style detection and furniture identification
- Product Recommendations: IKEA scraping and matching algorithms
- Real-time Processing: Live image analysis and instant feedback
- Cross-platform Sync: Shared API backend for consistent data
📱 Mobile App Features
Core Screens
- Home: Project overview and quick actions
- Camera: Room photo capture and gallery selection
- Analysis: Room dimensions and style preferences
- Recommendations: Product suggestions with filtering
- Profile: Settings and preferences
Key Components
- Camera integration with image capture
- Swipeable product cards
- Real-time room analysis
- Product filtering and search
- Favorites and shopping cart
Quick Start
-
Install Dependencies
npm run install:all -
Start Development Servers
npm run devThis starts both the FastAPI backend (port 8000) and Expo mobile app.
-
Access the App
- Mobile: Scan QR code with Expo Go app
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
Manual Setup
Backend
cd backend
pip install -r requirements.txt
python -m uvicorn main:app --reload --host 0.0.0.0 --port 8000
Mobile App
cd mobile
npm install
expo start
🔌 API Endpoints
Core Endpoints
POST /analyze-room- Analyze room images with AIPOST /recommendations- Get product recommendationsGET /projects- List design projectsPOST /projects- Create new projectPOST /products/search- Search productsPOST /mood-board- Create mood boardPOST /collaboration/join- Join collaboration room
📦 Dependencies
Mobile (React Native)
- Core: Expo SDK 54, React Native 0.81.5, React 19.1.0
- Navigation: React Navigation 6 (Native, Stack, Bottom Tabs)
- UI: React Native Paper 5.11.0, Vector Icons 10.0.0
- Camera: Expo Camera 17.0.8, Expo Image Picker 17.0.8
- Gestures: React Native Gesture Handler 2.28.0, Reanimated 4.1.1
- Media: Expo AV 16.0.7, Expo Linear Gradient 15.0.7
- Utilities: Expo Font 13.0.3, Expo Haptics 15.0.7, Expo Status Bar 3.0.8
- Development: TypeScript 5.1.3, Babel Core 7.20.0
Frontend Web (Next.js)
- Core: Next.js 16.0.0, React 19.2.0, React DOM 19.2.0
- Styling: Tailwind CSS 4.0, PostCSS 4.0
- TypeScript: TypeScript 5.x, Node Types 20, React Types 19
- Linting: ESLint 9, ESLint Config Next 16.0.0
Backend (Python)
- API: FastAPI 0.104.1, Uvicorn 0.24.0, Pydantic 2.8.2
- AI: Google Generative AI 0.3.2 (Gemini)
- Image Processing: Pillow 10.2.0+
- Web Scraping: Selenium 4.15.2, WebDriver Manager 4.0.1
- Security: Python-JOSE 3.3.0, Passlib 1.7.4
- Utilities: Python-dotenv 1.0.0, Requests 2.31.0, Python-multipart 0.0.6
Development Tools
- Concurrency: concurrently 8.2.2 for parallel development
- Package Management: npm with lock files across all projects
🚀 Deployment
Mobile App
# Build for production
npx expo start --tunnel
# Deploy to app stores
expo build:android
expo build:ios
Backend API
# Production server
cd backend
uvicorn main:app --host 0.0.0.0 --port 8000
Key Advantages
- Faster Development: Visual testing of AI features
- Better UX: Mobile-optimized interactions
- Easier Debugging: See what's happening in real-time
- Impressive Demos: Working mobile app with AI features
📄 License
MIT License - see LICENSE file for details
Analysis
View
Metric
- 18
- 7
- 5
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- JavaScriptIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Google GeminiClaimed
8 of 9 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
4.9 MB
Source files
46
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
NoahChhan/Reabode
92 files · 11.6 MB · @ f3e3bb5
Structure
Interface
19 files · 21%Screens, components and styles rendered to the user.
API & routing
1 file · 1%Request entry points: routes, handlers and controllers.
Application logic
21 files · 23%Domain rules, services and shared utilities.
+1 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript98%
- Python2%
- Markdown1%
- CSS0%
- JavaScript0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
mobile/package.json
npm · 26- @expo/ngrok
- @react-navigation/bottom-tabs
- @react-navigation/native
- @react-navigation/stack
- babel-preset-expo
- expo
- expo-av
- expo-camera
- expo-font
- expo-haptics
- expo-image-picker
- expo-linear-gradient
- expo-status-bar
- react
- react-native
- react-native-gesture-handler
- react-native-paper
- react-native-reanimated
- +8 more
backend/requirements.txt
pypi · 12- fastapi
- google-generativeai
- passlib[bcrypt]
- pillow
- pydantic
- python-dotenv
- python-jose[cryptography]
- python-multipart
- requests
- selenium
- uvicorn[standard]
- webdriver-manager
frontend/package.json
npm · 11- next
- react
- react-dom
- +8 more
package.json
npm · 11 development-only dependencies.
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.