An easy to use weather app to quickly get to know the outside weather by city or zip code.
Select a city from available cities or search for any US cities by name or zipcode and it will get the current weather details.
- App is the root component and houses Search, Current Weather, HourlyWeather components.
- The data retrieval and transformations are handled by Service and DataTransform utility classes
- A dedicated RESTClient util acts as transport layer to handle the AJAX communication and handle the errors.
- Dummy models are stored in data/ for testing;
- The Service can be extended as we scale
- Additional utilities can be bridged for other formatting needs
- Using only App.css for simplicity but ideally each component styling can be added in their respective CSS files
- Added both testing-library and Jest test cases as sample but can be improved to cover additional test scenarios.
- US Cities are obtained from official USPS database.
- Cache the data for the hour
- Default the city based on user location
- Can host this site to firebase
- Show hourly predictions
- Show 10 days ahead predictions
- Display breaking news
- Display weather icons based on the current state of the weather (rain, cloud,sunny)
- Change Fahrenheit to Celcius vice-versa
- Show the map of the current city cirle with latitude and longitude ranges
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
This project was bootstrapped with Create React App.
This uses the data from https://openweathermap.org/
