Loading repository data…
Loading repository data…
kgwilde / repository
Weather App that delivers Live Weather and Forecast data using a REST API
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Weather Now - Milestone Project #2 - is a Front-end Web Application that provides Users with live weather data and forecast data. For Milestone Project #2, it helps demonstrate updating DOM elements with JSON from a REST API. It also provides another chance to solidify and practice more CSS and Design Skills.
Live Deployment can be viewed here at Weather Now.
The main objective was to make an intuitive UX, the user should not be confused when visiting the Website. To achieve this, the approach was to use a simple, succinct, one-page web application. The User immediately sees an text-input that tells them to enter a location through a placeholder.
If the User is on Mobile, the UX objective was to limit the amount of User Actions to perform a search. This was achieved by using a 'Current Location' button, so they can get search results within one click.
The results of the search needed to be clear while also not bombarding the User with information. The REST API that collected Weather Data had a lot of data that could be displayed, so there was a process of elimination to decide what information is most important to the user - i.e what causes them to make a search, what do they want?
The chosen font for the application was Poppins. It is a clear and legible font that is very mobile friendly.
If the Browser the User uses doesn't support this font or Google Fonts is down, the back-up font is 'sans-serif' which should be built into all modern Operating Systems.
#082F5C - Primary colour#0A5ED7 - Secondary colour#E8E8E8 - Tertiary colour#E69F6A - Supplementary colour#FF6D00 - Supplementary colour 2The colours were chosen to convey a clean and friendly design with colours that complemented eachother. The Input Container uses the primary colour while the buttons within that Input Container use the
secondary
#0A5ED7 colour to provide some contrast between the two.
In order to prevent the whole application having a blue-theme in primary &
secondary
#0A5ED7 - the toggle switch uses the supplementary colours - &
in order to provide more contrast and distinguish it from its background.
The background for the body of content uses tertiary as the content of the weather containers are
white - it also provides some contrast to distinguish the two.
The logo was created on logomakr. It provides a free, low resolution access to many image assets. The logo is consistent with the colour theme, it uses primary, tertiary and supplementary colour 2.
Wireframes were created using Figma and can be viewed here.
As per the UX Objective, the goal was to create a simple and intuitive User Interface, initially, the colour schemes were different but as development went on, it was realized it needed more contrasting themes in order to engage the User.
The Wireframes were created at 3 target resolutions:
When the User visits the web application, there will be a 'how to use' container explaining the instructions on what the application offers. It details the three interactive options the User has before a result is shown.
The User can click the current location button which uses the Geolocation API, the browser will then ask the User permissiont to access their device's location. Once that is accepted, the weather results shown will be for that location - using latitude and longitude of the User's device.
The User can instead, enter their own custom location into the Input. Once they click search, the weather API will return weather data for that location.
When the User submits a search - current or custom location - the app will display a live weather container. This live weather will have key information about the location. This includes Temperature, Humidity, Wind Speed, Sunrise, Sunset and a description of the weather e.g Cloudy.
It was decided that this information was most important to a User seeking live weather information. More information could have been added but could lead to overwhelming the User.
In addition to live weather, the User will receive Forecasted Weather for that location. It will provide the User with the next 6 days of weather information - combined with live weather, totals to 7 day weather data. The Forecasted Weather prediction will have minimal but crucial information - date, temperature and weather description.
Using the coordinates of the location the User searched, there will be a hyperlink at the end of the results. It uses these coordinates to autofill a Google Maps query and bring the User to that location in Google Maps in another tab.
The footer contains information on how to contact me - Github, LinkedIn and Email. These buttons bring the User to another tab to view the app.
A future feature could provide data in another medium - through the usage of graphs. A line-graph can give the User an indication of where the weather temperature is trending i.e in the next couple of days, is it getting colder or warmer?
The User can click on a given forecast day and it will expand with a view that has more information about that day's weather prediction.
Embedding a widget such as windy.com for the User's location could give them another way to view the live weather data.
Testing can be viewed at TESTING.md
The Weather Now application was deployed to GitHub Pages. Github pages reads from the main branch and then finds the index.html to host. Here are the following steps I undertook to deploy my application to Github Pages:
main.A deployment of the site begins and the url is generated. This is also continuous deployment, when the main branch gets updated, Github pages will perform a new deployment with the new changes.
If you would like to run this locally or clone this repositor