A web app that estimates a home's renewable energy potential based on its address. Pulls real data from Google Solar, NREL, EIA, and more to generate solar cost projections, payback timelines, reduced carbon impact, and available incentives.
Built for Cheesehacks 2026.
- User enters a home address (Google Places autocomplete)
- Google Solar API loads roof imagery and building insights. The user can adjust panel count with a slider on the map
- Clicking Analyze kicks off parallel backend calls to estimate solar production, wind feasibility, geothermal suitability, electricity rates, and carbon offset
- A Monte Carlo simulation models 20-year savings under randomized utility inflation, panel degradation, cost overrun, and production variance
- Results page shows:
- Solar cost breakdown and payback period
- AI-generated summary (GPT-4o)
- Carbon offset with EPA equivalencies
- 20-year savings fan chart
- Panel count comparison
- IRA rebates and state/local incentives (after entering household income)
- Financing estimates by credit score and loan term
- Wind and geothermal feasibility
Client — React 18, Vite 5, Tailwind CSS, Recharts, Google Maps JS API
Server — Python / FastAPI / Uvicorn, NumPy, OpenAI SDK
├── client/
│ └── src/
│ ├── components/ # React UI components (cards, charts, panels)
│ └── utils/ # GeoTIFF parsing + solar overlay rendering
│
└── server/
├── routers/ # FastAPI route handlers for each API endpoint
├── utils/ # cost calculations, Monte Carlo, carbon lookups
└── tests/
| API | What for |
|---|---|
| Google Solar API | Building insights, roof data layers, GeoTIFF flux maps |
| Google Maps / Places | Address autocomplete, map rendering |
| EIA Open Data | State electricity prices and residential usage |
| Rewiring America | IRA rebates, state/local incentives |
| NREL Wind Toolkit | Wind speed at 40m hub height |
| Open-Meteo | Historical air + soil temps for geothermal suitability |
| OpenAI | GPT-4o for generating a plain-English summary |
- Node.js 18+
- Python 3.10+
- API keys for Google Maps/Solar, EIA, NREL, Rewiring America, and OpenAI
cd server
pip install -r requirements.txtCreate server/.env:
EIA_API_KEY=your_key
REWIRING_AMERICA_API_KEY=your_key
NREL_API_KEY=your_key
GOOGLE_MAPS_API_KEY=your_key
OPENAI_API_KEY=your_key
uvicorn main:app --reloadServer runs on http://localhost:8000.
cd client
npm installCreate client/.env:
VITE_GOOGLE_MAPS_API_KEY=your_key
VITE_API_BASE_URL=http://localhost:8000
npm run devClient runs on http://localhost:5173.