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!
- 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.
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
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.
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:
- Start development server on
127.0.0.1:3000
- Build a production version of the app.
- Start production server on
127.0.0.1:3000
to serve built app. Requires the build command to have already been run.
- Run all of the projects tests using jest.
- Lint all of the projects javascript files using eslint.
Thank you for your interest! Unfortunately, I'm not currently taking contributions.