A comprehensive property investment analysis platform built with React frontend and Python backend, featuring AI-powered property condition analysis and renovation cost estimation.
-
pipeline.py- Core property analysis pipeline with functions:process_listing()- Processes individual property listingsanalyse_results()- Analyzes property condition and generates insightsrun_pipeline()- Orchestrates the full analysis workflow
-
vision.py- AI vision processing module with functions:identify_room()- Classifies room types from imagesclassify_room_condition()- Assesses condition state of roomsanalyse_floorplan()- Processes floor plan imagesgenerate_refurb_edit()- Creates renovation visualization rendersrefurb_cost_estimate()- Generates detailed cost breakdowns
-
db.py- Firestore database interface with functions:save_listing()- Persists property dataget_all_listings()- Retrieves all propertiessearch_listings_by_location()- Geographic search functionalityget_listings_in_bounds()- Map-based property filtering
-
PropertyInfo.jsx- Main property detail dialog component- Responsive mobile/desktop layouts
- Image carousel with full-screen viewing
- Interactive cost estimation interface
- Property bookmarking functionality
-
Custom React Hooks - State management utilities
useLikes.js- Property favoriting systemuseIsMobile.js- Responsive breakpoint detection
-
Cost Estimation Components
RefurbCostEstimateCard.jsx- Interactive cost breakdown cardsCostScenarioCard.jsx- ROI calculation interfaceInfoCells.jsx- Property information display
main.py
db.py
models.py
Dockerfile
CostScenarioCard.jsx
InfoCells.jsx
PropertyListView.jsx
PropertyPreviewCard.jsx
RefurbCostEstimateCard.jsx
LikesContext.jsx
App.jsx
main.jsx
index.html
postcss.config.js
tailwind.config.js
pipeline.py (70/30)
scraper.py (30/70)
vision.py (80/20)
MapView.jsx (40/60)
PropertyFilters.jsx (50/50)
PropertyInfo.jsx (70/30)
useIsMobile.js (80/20)
useLikes.js (90/10)
utils.jsx (90/10)
propertyServices.js (70/30)
FirebaseClient.js (70/30)
vite.config.js (70/30)
ui
index.css
eslint.config.js