Create a web app for monitoring sentiment, price, and news for individual listed stocks, using IBM Watson Discovery and CloudantDB as well as Nodejs and Alpha Vantage.
Read this in other languages: 日本語.
This repository will not be updated. The repository will be kept available in read-only mode.
In this Code Pattern, we will create a web app for monitoring sentiment, price, and news for individual listed stocks, using IBM Watson Discovery and CloudantDB as well as Nodejs and Alpha Vantage. The web page is adapted from a template from Start Bootstrap by Blackrock Digital. You can find the repository for the template here, including its License.
When the reader has completed this Code Pattern, they will understand how to:
Get Your Free API Key Today
.Use the Deploy to IBM Cloud
button OR create the services and run locally.
Deploy to IBM Cloud
button and then click on Deploy
.Delivery Pipeline
to watch while the app is deployed. (Note, if you get an
error on the first time you deploy such as Server error, status code: 409, error code: 60016, message: An operation for service instance wsa-discovery is in progress.
, just click on the re-deploy button again, and it should work).
Once deployed, the app can be viewed by clicking View app
.
watsonstockadvisor
with a unique suffix. The following services are created and easily identified by the wsa-
prefix:
You can Deploy the application simply by clicking the Deploy to IBM Cloud
button above to automatically create a toolchain to provision and run the application.
If you do not have an IBM Cloud account yet, you will need to create one.
Clone the watson-stock-advisor
locally. In a terminal, run:
$ git clone https://github.com/ibm/watson-stock-advisor
Create the following services:
Launch the Watson Discovery tool. The first time you do this, you will see
"Before working with private data, we will need to set up your storage". Click Continue
and wait for the storage to be set up.
Choose Watson Discovery News
from the Manage Data
tab.
Under Collection Info
section, click Use this collection in API
and copy the Environment ID
into your .env file as DISCOVERY_ENV_ID
. This should be system
for the Watson Discovery News
collection.
Service Credentials
. If there is no credential under View Credentials
click New Credential
and then View Credentials
.
username
and password
in the .env file, as instructed below.Navigate to cloud.ibm.com
Click Create Resource
Search for cloudant nosql
Select the only search result under Data & Analytics
called Cloudant NoSQL DB
Specify the settings you want
Click Create
in the bottom right
From the top-level Cloudant page, click Service Credentials
. If there is no credential under View Credentials
click New Credential
and then View Credentials
.
The web page is adapted from a template from Start Bootstrap by Blackrock Digital. You can find the repository for the template here, including its License.
As you create the Bluemix Services, you'll need to create service credentials and get the username and password:
Move the watson-stock-advisor/web/env.sample
file to watson-stock-advisor/web/.env
and populate the service
credentials (and Cloudant URL) as you create the credentials:
The credentials for IBM Cloud services (Discovery), can be found in the Services
menu in IBM Cloud,
by selecting the Service Credentials
option for each service.
The other settings for Discovery were collected during the
earlier setup steps (ENV_ID
).
Navigate to the web directory and Copy the env.sample
to .env
.
$ cp env.sample .env
Edit the .env
file with the necessary settings.
env.sample:
# Copy this file to .env and replace the credentials with
# your own before starting the app.
# Watson Discovery
DISCOVERY_VERSION_DATE="2018-03-05"
DISCOVERY_ENV_ID="system"
DISCOVERY_URL=<add_discovery_url>
## Un-comment and use either username+password or IAM apikey.
# DISCOVERY_USERNAME=<add_discovery_username>
# DISCOVERY_PASSWORD=<add_discovery_password>
# DISCOVERY_IAM_APIKEY=<add_discovery_iam_apikey>
# Cloudant
CLOUDANT_USERNAME=<add_cloudant_username>
CLOUDANT_PASSWORD=<add_cloudant_password>
CLOUDANT_HOST=<add_cloudant_host>
DB_NAME="stock-data"
# App Config
MAX_COMPANIES=20
MAX_ARTICLES_PER_COMPANY=100
# AlphaVantage
ALPHAVANTAGE_API_KEY="demo"
In the root directory, run:
$ npm install
$ npm start
The portal should now be accessible on port 8080
(or another port specified by PORT in .env)
This code pattern is licensed under the Apache Software License, Version 2. Separate third party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the Developer Certificate of Origin, Version 1.1 (DCO) and the Apache Software License, Version 2.