Intelligent, data-driven cleaning recommendations for solar panel operations using NASA satellite data and multi-objective optimization.
- Frontend (Vercel): https://solaros.vercel.app
- Backend (Render): https://solaros.onrender.com/docs
- Frontend (Vercel): https://solaros.vercel.app
- Backend (Render): https://solaros.onrender.com/docs
SolarOS is a full-stack SaaS application that helps solar farm operators optimize cleaning schedules by balancing:
- Energy Output Recovery — Maximize kWh generation
- Carbon Footprint — Minimize environmental impact
- Water Conservation — Reduce water usage through intelligent forecasting
- Economic Efficiency — Optimize cleaning ROI
Built for hackathons, research demonstrations, and production deployment on Vercel (frontend) + Render (backend).
- Digital Twin Modeling — Physics-based degradation simulation
- NASA POWER API Integration — Real-time satellite environmental data
- Multi-Objective Optimization — Balance profit, carbon, and water usage
- Autonomous Recommendations — Data-driven cleaning date suggestions
- Rain Intelligence — Defer cleaning when rain is forecast to save water
- Multi-Farm Portfolio Optimizer — Optimize resource allocation across multiple sites
- Live Analysis — Interactive parameter tuning with instant feedback
- Production-Ready Analytics — Professional charts and metrics visualization
- Next.js 14 (App Router)
- TypeScript — Type-safe development
- Tailwind CSS — Utility-first styling
- Framer Motion — Smooth, performant animations
- Recharts — Data visualization
- FastAPI — High-performance Python API
- NumPy & Pandas — Scientific computing
- NASA POWER API — Satellite weather data
- Uvicorn — ASGI server
- Node.js 18+
- Python 3.10+
- Git
cd web
npm install
npm run devFrontend runs at: http://localhost:3000
# From project root
pip install -r backend/requirements.txt
uvicorn backend.main:app --reloadBackend runs at: http://localhost:8000
API Documentation: http://localhost:8000/docs
NEXT_PUBLIC_API_BASE_URL=http://localhost:8000For production on Vercel:
NEXT_PUBLIC_API_BASE_URL=https://your-backend-url.onrender.com- Create new Web Service on Render
- Connect GitHub repository
- Start Command:
uvicorn backend.main:app --host 0.0.0.0 --port $PORT - Deploy and copy the URL
- Import repository to Vercel
- Set Root Directory:
web - Environment Variable:
NEXT_PUBLIC_API_BASE_URL=https://your-backend-url.onrender.com - Deploy
| Endpoint | Method | Description |
|---|---|---|
/health |
GET | Health check |
/analyze |
GET | Solar cleaning analysis |
/rain-forecast |
GET | Rain intelligence |
/optimize-farms |
POST | Multi-farm optimization |
Full API docs: http://localhost:8000/docs
- Analyzes 30 days of solar farm data
- Recommends optimal cleaning date
- Calculates energy gain, carbon savings, and ROI
- Checks 7-day weather forecast
- Defers cleaning if rain expected
- Estimates natural dust reduction and water savings
- Optimize resource allocation across multiple farms
- Balance profit, carbon offset, or water scarcity constraints
- Smart selection based on cleaning ROI
SolarOS/
├── backend/
│ ├── main.py # FastAPI application
│ └── requirements.txt # Python dependencies
├── ml/
│ ├── data_loader.py # NASA API integration
│ ├── scenario_analysis.py # Core optimization logic
│ └── ... # ML models
├── web/
│ ├── src/
│ │ ├── app/ # Next.js pages
│ │ └── components/ # React components
│ ├── public/ # Static assets
│ └── package.json # Node dependencies
├── .gitignore
└── README.md
cd web
npm run buildcurl http://localhost:8000/health- ✅ No API keys committed
- ✅ Environment variables excluded via
.gitignore - ✅ CORS configured for production
- ✅ Input validation with FastAPI Pydantic models
This project is open source and available under the MIT License.
Contributions, issues, and feature requests are welcome!
- NASA POWER API for environmental data
- Vercel for frontend hosting
- Render for backend deployment
Project Link: https://github.com/yourusername/SolarOS
Built with ❤️ for sustainable energy infrastructure