Building a chat bot using IBM api was the most interesting thing I did in this hackathon. I learned a lot throughout the hackathon and implemented the API where the procedures are listed below. The challenges that I faced during the project was not being familiar with IBM api, although I pushed myself to learn and implement it. Finally, after learning all the api docs I was able to implement it.

Step 1: Cloned the API from Github repository##############

Step 2: Downloaded and installed the prerequisites for the api usage###############

  • Sign up for an IBM Cloud account.
  • Download the IBM Cloud CLI.
  • Create an instance of the Watson Assistant service and get your credentials:
  • Go to the Watson Assistant page in the IBM Cloud Catalog.
  • Log in to your IBM Cloud account.
  • Click Create.
  • Click Show to view the service credentials.
  • Copy the apikey value, or copy the username and password values if your service instance doesn't provide an apikey.
  • Copy the url value.

Step 3: Configuring the app ################# In your IBM Cloud console, open the Watson Assistant service instance

Click the Import workspace icon in the Watson Assistant service tool. Specify the location of the workspace JSON file in your local copy of the app project:


Select Everything (Intents, Entities, and Dialog) and then click Import. The car dashboard workspace is created.

Click the menu icon in the upper-right corner of the workspace tile, and then select View details.

In the application folder, copy the .env.example file and create a file called .env

  • cp .env.example .env
  • Open the .env file and add the service credentials that you obtained in the previous step. The Watson SDK automatically locates the correct environmental variables for either username, password, and url or the apikey and url credentials found in the .env file.

Example .env file that configures the apikey and url for a Watson Assistant service instance hosted in the US East region:

ASSISTANT_IAM_APIKEY=X4rbi8vwZmKpXfowaS3GAsA7vdy17Qhxxxxxxxx ASSISTANT_URL= If your service instance uses username and password credentials, add the ASSISTANT_USERNAME and ASSISTANT_PASSWORD variables to the .env file. Example .env file that configures the username, password, and url for a Watson Assistant service instance hosted in the US South region:

ASSISTANT_USERNAME=522be-7b41-ab44-dec3-xxxxxxxx ASSISTANT_PASSWORD=A4Z5BdGENxxxx ASSISTANT_URL= However, if your credentials contain an IAM API key, copy the apikey and url to the relevant fields.

{ "apikey": "ca2905e6-7b5d-4408-9192-xxxxxxxx", "iam_apikey_description": "Auto generated apikey during resource-key ...", "iam_apikey_name": "auto-generated-apikey-62b71334-3ae3-4609-xxxxxxxx", "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager", "iam_serviceid_crn": "crn:v1:bluemix:public:iam...", "url": "" } ASSISTANT_IAM_APIKEY=ca2905e6-7b5d-4408-9192-xxxxxxxx Add the ASSISTANT_ID to the previous properties

ASSISTANT_ID=522be-7b41-ab44-dec3-xxxxxxxx Running locally Install the dependencies

  • npm install Run the application

  • npm start View the application in a browser at localhost:3000

Deploying to IBM Cloud as a Cloud Foundry Application Login to IBM Cloud with the IBM Cloud CLI

ibmcloud login Target a Cloud Foundry organization and space.

ibmcloud target --cf Edit the manifest.yml file. Change the name field to something unique. For example, - name: my-app-name.

Deploy the application

ibmcloud app push View the application online at the app URL. For example:

License This sample code is licensed under Apache 2.0. Full license text is available in LICENSE.

Contributing See CONTRIBUTING.

Open Source @ IBM Find more open source projects on the IBM Github Page.

Built With

Share this project: