Weather Forecast App is a user interface for city based weather reports created with Vue.js and openweathermap.org api.
Vuetify used as component library while creating the ui.
You can see live preview here: Weather Forecast App
- Projects name is Weather Forecast App, hence I have used 'WF' prefix for the custom components that I've created.
- In custom components style section, there is a wrapper div and an id given to this div as wrapper css. I use this method for overwriting Vuetify classes without scoping.
-
WFStepper
Main stepper component contains three basic components of the application.(WFForecastForm, WFForecastForm, WFForecastForm).
-
WFForecastForm
Simple form component that contains name and city fields expected from user.
-
WFSelfieStep
User can take photos until he choose to continue with one of them.
-
WFForecastTable
UI section that contains current, todays and weekly forecast components.
Props
Name Type Description forecastData Object The raw forecast data fetched from api -
WFCurrentWeatherSection
UI section that shows current time's weather data.
Props
Name Type Description currentWeather Object First item of the weather data fetched from the api. Indicates weather report closest to current time forecastData Object Processed and grouped version of api's forecast data -
WFTodaysWeatherSection
UI section that shows today's weather data with 3 hours of intervals.
Props
Name Type Description currentWeather Object First item of the weather data fetched from the api. Indicates weather report closest to current time todaysForecast Array The array that contains all weather data for the day with 3 hours of intervals -
WFWeeklyWeatherSection
UI section that shows 5 days of weather forecast report starting tomorrow for every day with 3 hours of intervals.
Props
Name Type Description processedForecastData Object Processed and grouped version of api's forecast data forecastDays Array The array that contains all dates for the fetched forecast data
- An AI face detection plugin could be implemented to detect user faces while taking selfies inside app.
- App is only showing weather degrees right now, API has a lot of different data (humidity, wind etc.). These datas can be shown in a detailed view.
- Components can be dissectable to more smaller pieces for better maintaining.
- A common component library can be created for reusable small components such as loading, custom inputs, weather table cells etc.
- Style optimizations can be made and dark mode could be added
You will need Node.js version 6.0 or greater installed on your system.
Get the code by either cloning this repository using git
> git clone https://github.com/ssamilg/weather-forecast-app.git
... or downloading source code code as a zip archive.
Once downloaded, open the terminal in the project directory, and continue with:
npm install
npm run serve
npm run build
npm run test:unit
npm run lint