The local weather using openweather API. It first tries to get the user location using navigator.geolocation and if that fails it pings ipinfo.io for the user's IP. It changes the background image based on he current weather condition.
You can find more about the project on: