Skip to content

tylercrosse/weather-app

Repository files navigation

Weather App

This is app was built in my spare time over a week as part of a coding challenge. I'm currently looking for a new position in Seattle - Hire me!

preview image

Major features

  • Current & forecasted weather for any location. Weather data from the dark sky api.
  • Location search with autocomplete, with help from the google places service.
  • Charts showing forecasted weather for the next week & the weather that already occurred today.
  • Search history stored in session.

Wish List

The things I would like to do if I had more time

  • Better test coverage
  • Responsive design
  • More complete PWA support
  • Push deployment to cloud service (probably Digital Ocean or AWS)
  • Display additional data

Built with

React makes it really easy to focus on the view in a declarative way. I like that it makes it easy to write composable, testable UI. Visualizatin handled by react vis, a d3 powered react component library.

Redux is where the fun is at. It was used to manage state across the application in a predictable imperative way. Redux devtools are also great, I kept it enabled on production for anyone wanting to easily take a look at the app's state. Redux persist allowed the state to be easily persisted across browser sessions.

Fantastic code bundler once you get past the learning curve. I use it for a number of things including: transpile ES2015+ javascript to ES5 with Babel, compile Sass into css, optimize assets, hot reload code, build minimized split production code, + more.

It's nice to have JS everywhere. Express is fast and minimal. The backend is pretty simple with a router, a few controllers, and basic http requests to cross origin resources.

Unit tests run by Jest. If you haven't seen Jest recently, you should take another look. Enzyme is used for React support and SuperTest is used for HTTP assertions. Enzyme-to-JSON is also great and worth checking out in conjunction with the other test utilities.


Setup

If you don't have yarn commands can be run with npm. First, clone and cd into the repo and install the dependencies.

$ git clone https://github.com/tylercrosse/gitter-clone.git
$ cd gitter-clone
$ yarn install

Additional commands:

yarn dev
  • Start development server on 127.0.0.1:3000
yarn build
  • Build a production version of the app.
yarn start
  • Start production server on 127.0.0.1:3000 to serve built app. Requires the build command to have already been run.
yarn test
  • Run all of the projects tests using jest.
yarn lint
  • Lint all of the projects javascript files using eslint.

Contributing

Thank you for your interest! Unfortunately, I'm not currently taking contributions.