ClimateX is a climate & weather dashboard that shows real-time weather data and forecasts for any city.
Search a location to view current conditions and browse 30-day historical trends through interactive charts.
The forecast uses a neural network built with TensorFlow.js that trains in your browser, analyzing temperature, humidity, and CO₂ patterns to predict weather for the next 7 days. Each chart displays trend analysis and provides context to help interpret the data.
- Global City Search - Find weather info for any city
- Real-Time Weather - Current temperature, humidity, wind speed, and conditions
- ML-Based 7-Day Forecast - Weather predictions created with a neural network that learns from past weather patterns
- Visual Data Charts - See 30-day trends for temperature, CO₂, rainfall, and humidity
| Home Screen | Weather Dashboard | Charts & Analytics |
|---|---|---|
![]() |
![]() |
![]() |
- React - UI framework with hooks for state management
- Tailwind CSS - Utility classes for styling
- Recharts - Interactive charts and graphs
- TensorFlow.js - Runs ML models in the browser
- Lucide React - Icon set for weather symbols and UI elements
useSuggestions- Handles city searchuseWeather- Fetches and manages weather datausePrediction- Trains ML model and generates forecasts
- Open-Meteo Weather API:
https://api.open-meteo.com/v1/forecast- Gets current weather conditions
- Open-Meteo Geocoding:
https://geocoding-api.open-meteo.com/v1/search- Searches cities and returns coordinates
- Node.js
- npm
- Clone this repo
git clone https://github.com/yusraSyed05/ClimateX.git- Go to the project folder
cd ClimateX- Install packages
npm install- Run the dev server
npm run devclimatex/
├── public/
├── src/
│ ├── components/
│ │ ├── Charts/
│ │ │ ├── CO2Chart.jsx
│ │ │ ├── HumidityChart.jsx
│ │ │ ├── RainfallChart.jsx
│ │ │ └── TemperatureChart.jsx
│ │ ├── Forecast/
│ │ │ ├── ForecastDayCard.jsx
│ │ │ ├── ForecastHeader.jsx
│ │ │ └── ForecastSummary.jsx
│ │ ├── WeatherCards/
│ │ │ ├── CO2Card.jsx
│ │ │ ├── HumidityCard.jsx
│ │ │ ├── TemperatureCard.jsx
│ │ │ └── WindCard.jsx
│ │ ├── SearchBar.jsx
│ │ ├── SuggestionsDropdown.jsx
│ │ └── WelcomeSection.jsx
│ ├── hooks/
│ │ ├── usePrediction.js
│ │ ├── useSuggestions.js
│ │ └── useWeather.js
│ ├── ClimateX.jsx
│ ├── App.jsx
│ ├── index.css
│ ├── App.css
│ └── main.jsx
├── .gitignore
├── eslint.config.js
├── LICENSE
├── README.md
├── index.html
├── package.json
├── package-lock.json
├── postcss.config.js
├── tailwind.config.js
└── vite.config.js
Contributions are welcome!
- Fork the repo
- Make a new branch
- Commit your changes
- Push it
- Open a pull request
MIT License - see the LICENSE file


