πŸ“Š Sample Nodejs Application for the IBM Watson Personality Insights Service
JavaScript CSS HTML
Latest commit 1d70588 Feb 14, 2017 @germanattanasio germanattanasio committed on GitHub Update passport.js

README.md

Personality Insights Nodejs Starter Application Build Status codecov.io

The IBM Watson [Personality Insights][service_url] service uses linguistic analysis to extract cognitive and social characteristics from input text such as email, text messages, tweets, forum posts, and more. By deriving cognitive and social preferences, the service helps users to understand, connect to, and communicate with other people on a more personalized level.

Deploy to Bluemix

Getting started

  1. You need a Bluemix account. If you don't have one, sign up. Experimental Watson Services are free to use.

  2. Download and install the Cloud-foundry CLI tool if you haven't already.

  3. Edit the manifest.yml file and change <application-name> to something unique. The name you use determines the URL of your application. For example, <application-name>.mybluemix.net.

    applications:
    - services:
      - my-service-instance
      name: <application-name>
      command: npm start
      path: .
      memory: 512M
  4. Connect to Bluemix with the command line tool.

    cf api https://api.ng.bluemix.net
    cf login
  5. Create and retrieve service keys to access the [Personality Insights][service_url] service:

    cf create-service personality_insights tiered my-pi-service
    cf create-service-key my-pi-service myKey
    cf service-key my-pi-service myKey
    
  6. Create a .env file in the root directory by copying the sample .env.example file using the following command:

    cp .env.example .env
    

    You will update the .env with the information you retrieved in steps 5.

    The .env file will look something like the following:

    PERSONALITY_INSIGHTS_USERNAME=<username>
    PERSONALITY_INSIGHTS_PASSWORD=<password>
    
  7. Install the dependencies you application need:

    npm install
    
  8. Start the application locally:

    npm start
    
  9. Point your browser to http://localhost:3000.

  10. Optional: Push the application to Bluemix:

    cf push
    

After completing the steps above, you are ready to test your application. Start a browser and enter the URL of your application.

        <your application name>.mybluemix.net

For more details about developing applications that use Watson Developer Cloud services in Bluemix, see Getting started with Watson Developer Cloud and Bluemix.

Setting Up the Twitter Application

  1. Create a Twitter application.

  2. Add your application's callback URL:

    • For Bluemix environment: <application-name>.mybluemix.net/auth/twitter/callback
    • For Local environment: http:localhost:3000/auth/twitter/callback
  3. Update the .env file and add your twitter application credentials:

    TWITTER_CONSUMER_KEY=<consumer-key>
    TWITTER_CONSUMER_SECRET=<consumer-secret>
    
  4. Restart the app locally or push it again to Bluemix.

Troubleshooting

  • The main source of troubleshooting and recovery information is the Bluemix log. To view the log, run the following command:

    cf logs <application-name> --recent
  • For more details about the service, see the documentation for the Personality Insights.

Directory structure

.
β”œβ”€β”€ app.js                       // express entry point
β”œβ”€β”€ config                       // express configuration
β”‚Β Β  β”œβ”€β”€ error-handler.js
β”‚Β Β  β”œβ”€β”€ express.js
β”‚Β Β  β”œβ”€β”€ i18n.js
β”‚Β Β  β”œβ”€β”€ passport.js
β”‚Β Β  └── security.js
β”œβ”€β”€ helpers                      // utility modules
β”‚Β Β  β”œβ”€β”€ personality-insights.js
β”‚Β Β  └── twitter-helper.js
β”œβ”€β”€ i18n                         // internationalization
β”‚Β Β  β”œβ”€β”€ en.json
β”‚Β Β  β”œβ”€β”€ es.json
β”‚Β Β  └── ja.json
β”œβ”€β”€ manifest.yml
β”œβ”€β”€ package.json
β”œβ”€β”€ public
β”‚Β Β  β”œβ”€β”€ css
β”‚Β Β  β”œβ”€β”€ data                     // sample text and tweets
β”‚Β Β  β”œβ”€β”€ fonts
β”‚Β Β  β”œβ”€β”€ images
β”‚Β Β  └── js
β”œβ”€β”€ router.js                   // express routes
β”œβ”€β”€ server.js                   // application entry point
β”œβ”€β”€ test
└── views                       // ejs views

License

This sample code is licensed under Apache 2.0.

Contributing

See CONTRIBUTING.

Open Source @ IBM

Find more open source projects on the IBM Github Page

Privacy Notice

Sample web applications that include this package may be configured to track deployments to IBM Bluemix and other Cloud Foundry platforms. The following information is sent to a Deployment Tracker service on each deployment:

  • Node.js package version
  • Node.js repository URL
  • Application Name (application_name)
  • Space ID (space_id)
  • Application Version (application_version)
  • Application URIs (application_uris)
  • Labels of bound services
  • Number of instances for each bound service and associated plan information

This data is collected from the package.json file in the sample application and the VCAP_APPLICATION and VCAP_SERVICES environment variables in IBM Bluemix and other Cloud Foundry platforms. This data is used by IBM to track metrics around deployments of sample applications to IBM Bluemix to measure the usefulness of our examples, so that we can continuously improve the content we offer to you. Only deployments of sample applications that include code to ping the Deployment Tracker service will be tracked.