Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 3.98 KB

README.md

File metadata and controls

36 lines (29 loc) · 3.98 KB

Simple Weather App

Made for eSalon by Dean Householder on 23 Mar 2021 Updated on 19 Dec 2022 to use OpenWeather API instead of MetaWeather Hosted on https://weather.deanhouseholder.com/

Original requirements were to build a simple weather app using a modern framework which fetches the latitude/longitude for the user's IP from the freegeoip.app API. Then to looks up the weather from the metaweather.com API. Then displays it on a clean web interface. While this could've been a javascript-based app entirely, the focus was on PHP backend skills.

2023 - MetaWeather is now defunct so I re-engineered it to use the OpenWeatherMap.org API instead.

Files added/modified include:

File path Description
app/Classes/FreeGeoIp.php FreeGeoIp class to communicate with freegeoip.app API
app/Classes/Helpers.php Helpers class to provide one-off functions
app/Classes/OpenWeather.php OpenWeather class to communicate with openweathermap.org API
app/Controllers/WeatherController.php Main page controller to tie together to api logic
app/config/app.php Defined configuration variables in the App config
public/img/* Uploaded various images
public/favicon.ico Added a weather favicon
resources/sass/app.scss Added custom styles in SCSS
resources/views/home.blade.php Main view for displaying weather data
resources/views/error.blade.php Error view for when city is not found
resources/views/snippets/footer.blade.php Site Footer
resources/views/snippets/header.blade.php Site Header
routes/web.php Added the main route

Implemented in Laravel/Bootstrap, as requested. Used https://freegeoip.app/ and https://www.metaweather.com/api/ as requested. Updated later to use https://openweathermap.org/.

See inline comments for walk-through.

I completed this project in about 6 hours. If I had more time, I would add tests, scrub user input, add a solution to missing cities, and improve the icons.