/ng2-finance

Finance dashboard using Yahoo's public APIs.

Primary LanguageTypeScriptMIT LicenseMIT

NG2 Finance

Build Status Coverage Status License: MIT Dependencies Status DevDependencies Status

Finance dashboard using Yahoo's public APIs.

*This is for demo purposes only, please don't rely on the prices provided.

Screenshot

Features

  • Search for any stock symbol to view historical data, summary, and news.
  • Add and remove stock symbols to favorites.
  • Stock data refreshes every 15 seconds in the background.
  • Settings are saved to local storage.
  • Fully responsive.
  • Continuous integration and code coverage with Travis CI and Coveralls.

Todo List

  • 100% code coverage
  • Convert to React
  • Add advanced chart options
  • Add a way to view more info about a stock
  • Create a markets overview page that displays movers, gainers, loser, etc

Quick Start

$ git clone https://github.com/mpetkov/ng2-finance.git
$ cd ng2-finance
$ npm install
$ npm start

Configuration

Default application server configuration

var PORT             = 5555;
var LIVE_RELOAD_PORT = 4002;
var DOCS_PORT        = 4003;
var APP_BASE         = '/';

Configure at runtime

$ npm start -- --port 8080 --reload-port 4000 --base /my-app/

Environment configuration

If you have different environments and you need to configure them to use different end points, settings, etc. you can use the files dev.ts or prod.ts in./tools/env/. The name of the file is environment you want to use.

The environment can be specified by using:

$ npm start -- --env-config ENV_NAME

Currently the ENV_NAMEs are dev, prod, staging, but you can simply add a different file "ENV_NAME.ts". file in order to alter extra such environments.

Running tests

$ npm test

# Development. Your app will be watched by karma
# on each change all your specs will be executed.
$ npm run test.watch
# NB: The command above might fail with a "EMFILE: too many open files" error.
# Some OS have a small limit of opened file descriptors (256) by defaul
# and will result in the EMFILE error.
# You can raise the maximum of file descriptors by running the command below:
$ ulimit -n 10480


# code coverage (istanbul)
# auto-generated at the end of `npm test`
# view coverage report:
$ npm run serve.coverage

# e2e (aka. end-to-end, integration) - In three different shell windows
# Make sure you don't have a global instance of Protractor
# Make sure you do have Java in your PATH (required for webdriver)

# npm install webdriver-manager <- Install this first for e2e testing
# npm run webdriver-update <- You will need to run this the first time
$ npm run webdriver-start
$ npm run serve.e2e
$ npm run e2e

# e2e live mode - Protractor interactive mode
# Instead of last command above, you can use:
$ npm run e2e.live

License

The MIT License

Acknowledgments