Project Requirements
Build a React app to display weather information. The UI implementation should prompt for a location, and display the resulting weather.
https://react-weather-app-871a0.firebaseapp.com
0.0.1
- Navigate to URL
- Start typing in your city name, and pick a result from the suggestions
- Autocomplete API from https://www.accuweather.com/web-api/autocomplete and https://www.accuweather.com/web-api/zip-autocomplete
- Current Conditions API from https://developer.accuweather.com/accuweather-current-conditions-api/apis
- 1 day forecast from https://developer.accuweather.com/accuweather-forecast-api/apis
- The API keys are hard-coded in config.ts. Since there doesn't seem to be a way in accuweather to limit the keys to certain domains, In a true system, there would be a wrapper back-end API, where the API keys would be, so that they're not exposed to the front-end
- The accuweather API only gives suggestions for cities, for example, Houston. Typing in Houston, TX does not return any results
- React - A JavaScript library for building user interfaces
- Redux - A predictable state container for JavaScript apps.
- React-Redux - Official React bindings for Redux
- Redux Thunk - Thunk middleware for Redux.
- Material UI - React components that implement Google's Material Design.
- Lodash - A modern JavaScript utility library delivering modularity, performance & extras.
- Typescript - An open-source language which builds on JavaScript.
- Jest - Delightful JavaScript Testing.
- git clone https://github.com/shahmirn/react-weather-app
- cd react-weather-app
- npm install
- npm run start
- Go to http://localhost:3000/
- Add additional unit tests, specifically for the LocationSearch component
- Better error handling, specifically displaying an error message if we've exceeded the AccuWeather API limit