Giter Club home page Giter Club logo

forecaster's Introduction

Forecaster displays the weather conditions for the next five days and any alerts which appear. Location Coordinates are retrieved using Google Maps Geocode API. Weather data is pulled from the Dark Sky API.

Build Instructions

  1. Download or clone repo: git clone https://github.com/slmoore/forecaster.git

  2. Sign up for Dark Sky and Google Maps Geocode in order to get your personal API keys.

  3. Change to forecaster directory and install dependencies: - cd path/to/forecaster - npm install

  4. Create a .env file in the root directory and paste in the following environment variables. Replace the values with your own: - PORT=8080 - GEOCODE=1234 - DARK_SKY=5678

- ***Unless port 8080 is already in use, it can be left as 8080.***
  1. You're done! So now you can run any of the following commands: - npm run dev # run in development environment (visit http://localhost:8080) - npm test # run unit tests - npm run cover # run unit test coverage report (html version generated inside /coverage/index.html) - npm start # run from node server (visit http://localhost:8080) - npm run build:all # build server and client bundles

This application accesses the environment variables using node, so it does not run statically.

Technology used with reasoning:

  • react - view framework to maintain display as state changes
  • redux - simplifies maintaining state as new features are added
  • react-router - maintaining routing within a single page application
  • sass - simplifies style over time
  • bootstrap - initial style
  • mocha/chai/istanbul - unit testing (only partial testing as of 10/16/16)
  • webpack/babel - bundles project with babel allowing for ES6/JSX features, hot reloading in development, uglify tasks, sass css preprocessor tasks, and server-side rendering
  • heroku - quick deployment and the reason that the bundle is included in the repo (saves heroku the time)

User Story:

Using the Dark Sky API

  • For the next five days display the:
    • conditions
      • status: complete
    • min and max temperature
      • status: complete

Extra

  • additional features beyond task
    • location generated based on user input: complete
    • added Alerts feature: complete
    • started unit tests
    • started server-side rendering

To be continued:

  • write tests for async actions, reducers, components
  • improve server-side rendering

forecaster's People

Contributors

slmoore avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.