Enter a location and recieve a stylish weather report. Theme changes color based on the time of day.
Recommended queries:
'Kiev'
'Split, Croatia'
'Okinawa'
'Vatican City',
'Chicago'
Created in Figma. View Designs.
The API Limit for this application is currently 1000
calls per day. If you would like to increase this limit please venmo @darrenangle
$40USD to increase the limit to 2000
calls per day for 1 month.
This project requires yarn
cli. Install instructions here.
In the project directory, you can run:
Installs the application dependencies. Run this first.
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
Runs integration test suite for component-only integration tests and function unit tests.
Builds a prod app, serves it, runs headless e2e tests against it using cypress. If cypress is not installed there is a potential that the cypress app verification will time out the runner the first time. Running the command again should solve this problem.
React
andTypescript
using create-react-appredux
is the current store for global state, though the app is architected to be store-agnostic. To change the store, implement theGlobalStoreInteractor
interface with a store wrapper that uses implict subscriptions.AWS Lambda
'backend' to consolidate api calls and obscure api keysGoogle Geocoding API
to process queries and return a lat longOpen Weather API (OneCall)
to produce weather data from lat longCypress
for e2e testinggts
,prettier
for typescript linting config
- Add an overlay that responds to visibility data and darkens or lightens the theme.
- Better error handling for:
- Odd locations
- API Limit hitting
- UI Tweaking:
- Better responsivity across elements
- Add sm break point
- Shrink main panel at md breakpoint instead of breaking
- Better match the designs
- Add degree symbols to high low and day range (fussy)
- Add more themes for the morning and day hours
- Better responsivity across elements
- Revisit features to:
- Ensure relevant test coverage
- Lift data mapping out of api call and unit test mapping function (Pull Request: #2)
- Abstract and lift state if possible
- Lift init data call from component to
<App />
- Push fonts + breakpoints into theme
- Lift init data call from component to
- Abstract and lift dependencies
- Pass API class into as props for easier stubbing (Pull Request: #1)
- Ensure relevant test coverage