A futuristic, responsive weather dashboard built with plain HTML, CSS, and JavaScript.
It shows live weather, wind intelligence, air quality, a 12-hour outlook, and a 14-day forecast with a polished UI designed for desktop, tablet, and mobile.
- Rahul Jha
- GitHub: https://github.com/rahul24433
- Portfolio: https://rahul24433.github.io/
- LinkedIn: https://www.linkedin.com/in/rahul-kumar-jha-5bb025191/
- Current weather conditions (temperature, feels-like, humidity, pressure, visibility, precipitation, cloud cover, UV index)
- Wind intelligence panel (speed, gusts, direction + compass dial)
- 12-hour forecast strip (temperature, condition, wind, rain chance)
- 14-day forecast grid (high/low temperature, wind peak, rain risk)
- Air quality section (EU AQI, US AQI, PM2.5, PM10, Ozone, CO)
- City search + geolocation (
Use My Location) - Recent search chips (stored locally)
deg C/deg Funit toggle (stored locally)- Manual refresh button + auto-refresh every 10 minutes
- Online/offline connection status handling
- Fully responsive layout for PC, smartphone, and tablet
- HTML5
- CSS3 (custom futuristic styling + responsive breakpoints)
- Vanilla JavaScript (ES6+)
- Open-Meteo APIs (no API key required)
- Forecast API:
https://api.open-meteo.com/v1/forecast - Geocoding API:
https://geocoding-api.open-meteo.com/v1/search - Reverse Geocoding API:
https://geocoding-api.open-meteo.com/v1/reverse - Air Quality API:
https://air-quality-api.open-meteo.com/v1/air-quality
.
├── index.html # UI structure
├── styles.css # Theme, layout, responsive behavior, animations
└── script.js # Data fetching, rendering, state, interactions, persistence
- Open a terminal in the project directory:
cd /home/rahuljha/Documents/HabbitTrackerWebApp- Start a local server (recommended for geolocation support):
python3 -m http.server 8080- Open in browser:
http://localhost:8080
- Type a city in the search box and click
Search. - Or click
Use My Locationto load weather by GPS. - Switch between
deg Canddeg Ffrom the unit toggle. - Click
Refreshfor an instant data refresh. - Tap a recent-search chip to quickly reload a city.
The app stores these preferences in localStorage:
aeropulse_unitaeropulse_recent_citiesaeropulse_last_location
In script.js, you can tune:
DEFAULT_CITYHOURLY_WINDOWDAILY_WINDOWRECENT_CITY_LIMITAUTO_REFRESH_INTERVAL_MS
- Internet is required (all weather/air data is fetched live).
- Geolocation requires browser permission and works best on secure contexts (
httpsorlocalhost). - Air quality values may be unavailable for some locations/times.